文章参考:http://blog.csdn.net/charlene0824/article/details/52189320
Git是一种分布式的版本控制系统,是现在开发者的必备技能。使用Git已经有一段时间了,在这里总结一下Git的常用命令以及常用操作
先上图(盗图自Git远程操作详解)
Git常用命令
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
如何将本地内容上传到远程仓库
使用的命令及使用顺序
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
小Tips : git status
是查看当前状态的,不是必须操作。但是通过git status
不仅可以知道当前的状态,它也提示你下一步操作。所以,如果不知道如何操作你的Git,不妨试一下这个命令
当使用Git时,我们在执行git命令的目录称为工作区。我们通常使用git init
命令后后会发现该目录下多了.git
的文件夹(有时是隐藏的文件夹),该文件夹下的区域即为版本库。通过git add
命令会将工作区的文件或文件夹复制到版本库中的暂存区,通过git commit
命令会将暂存区的内容提交到本地仓库 ,通过git push
命令可以将本地仓库的内容上传到远程仓库(如github)。
如何操作分支
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
这里需要说明一下,在每次提交的时候,Git都把提交串成一条时间线,这条时间线就是一个分支,即主分支。一开始的时候,master分支是一条线,Git用master指向最新的提交,再用head指向master,就能确定当前分支以及当前分支的提交点
当创建新的分支的时候(比如分支名为dev),Git新建了一个指针叫dev,指向master相同的提交,再把head指向dev,就表示当前分支在dev上
从现在开始,对工作区的修改和提交就是针对dev分支了,当新的提交生成后,dev的指针往前移一步,而master指针就不变。
当在dev上的工作完成后,就可以把dev合并到master上。即直接把master指向dev的当前提交,所以合并分支就是改变了一下指针
合并完分支后,删除dev分支,删除分支的过程就是把dev指针删掉的过程,这样最后还是只剩下master分支
(上述四个图均来自廖雪峰 Git教程)
如何处理文件冲突问题
当多人协作完成同一个项目的时候,很容易出现两个人同时修改一个文件的情况。这事,如果一个人上传对A文件的操作之后,另一个人在执行git push
命令上传对A的操作时就会出现冲突。常用的解决冲突的方法是先将远程仓库通过git pull
拉取到本地并合并。如果有冲突,在冲突文件中会通过如下方法进行标示。
<<<<<<< HEAD
Creating a new branch is quick & simple. //别人的修改
=======
Creating a new branch is quick AND simple. //你的修改
>>>>>>> origin
可以通过该表示将文件进行修改,比如我们将文件修改为
Creating a new branch is quick AND simple.
这时再运行git push
就可以提交到远程仓库
冲突一般会出现在多人开发同一个项目中。多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支已经更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull
提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
。
Git还有很多需要学习的东西,现在先总结这么多。等以后遇到什么问题,再继续补充