程序员必会技能系列(2)git的使用-1

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wode_dream/article/details/61183553

命名来源(from维基百科)

林纳斯·托瓦兹自嘲地取了这个名字“git”,该词源自英国俚语,意思大约是“混账”。
“I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.”


主要功能(from维基百科)

git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。


实现原理(from维基百科)

git和其他版本控制系统(如CVS)有不少的差别,git本身关心文件的整体性是否有改变,但多数的CVS或Subversion系统则在乎文件内容的差异。因此git更像一个文件系统,直接在本机上获取数据,不必连接到主机端获取数据。



1、默认存放git密钥的地方

l ~/.ssh

2、生成密钥命令

ssh-keygen -t rsa

3、克隆项目

git clone [email protected]:ZAndy/PProject.git (SSH方式访问仓库)

4、查看所有分支

git branch

5、创建一个分支

git branch 分支名

6、从当前分支创建新的分支,并且切换到newbranch2

git checkout -b newbranch2

7、切换分支

git checkout 分支名

8、上传新的分支

(fatal: The current branch newbranch has no upstream branch.

To push the current branch and set the remote as upstream, use

git push --set-upstream origin newbranch

9、创建一个新的文件并提交

  • 创建一个文件Branch.java
  • git add Branch.java
  • git commit -a(同步到本地git仓库。必须要在打开的文件中输入内容,不然无法提交)
  • git push(提交到远程git仓库)

10、合并分支

  • 先切换到主分支 git checkout master
  • git merge newbranch
  • git push

11、提交当前修改的内容

git commit -m story (必须在-m后面添加内容才能提交)

12、HEAD指向当前节点的父节点或者更上一层

git checkout master^

13、git rebase,第二种合并分支的方法

好处:可以创建一个更好的提交线路

目标:把newbranch分支rebase到master上

  • git checkout -b newbranch 创建一个newbranch分支,并切换到newbranch
  • git commit -m newbranchcommit 提交分支
  • git checkout master 切换到master主分支
  • git commit -m mastercommit 提交主分支
  • git checkout newbranch 切换到newbranch分支
  • git rebase master 合并到主分支

14、Git目录

在.git目录下存储着项目所有的历史和元信息的目录-包括所有的对象(commits,trees,blobs,tags),这些对象指向不同的分支。每个项目只能有一个.git目录。
  • HEAD —— 这个git项目当前处在哪个分支里
  • config —— 项目的配置信息,git config命令会改动它
  • description —— 项目的描述信息
  • hooks/ —— 系统默认钩子脚本目录
  • index —— 索引文件
  • logs/ —— 各个refs的历史信息
  • objects/ —— Git本地仓库的所有对象(commits,trees,blobs,tags)
  • refs/ —— 标识你项目的每个分支指向了哪个提交(commit)。

15、查看远程分支

git branch -r

16、拉取远程分支

git checkout -b 本地分支名 origin/远程分支名

17、 删除分支

git branch -D 分支名

18、恢复到某个版本

git reset a326430 —hard (a326430是commit号)

19、查看某次commit的修改内容

git show

20、查看某个文件的修改历史

git log -p

21、查看所有分支(本地和远程)

git branch -a

这是一个练习git命令的地方

猜你喜欢

转载自blog.csdn.net/wode_dream/article/details/61183553