术语解析
1.工作副本
工作副本表示本地仓库中某个分支的一个当前的代码状态,包括所有的代码。我们在工作副本上进行的修改,如果不提交的话,当我们修改的时候,就会一直在变,我们无法回到某一个时刻的代码状态。在我们完成一个大功能的时候,如果我们完成了其中一个小功能,为了记录下此时的代码状态,我们可以选中修改了的文件,并在文件状态里面将这些文件添加到缓存区,然后发起一个提交,这时本地仓库该分支上就有了这个代码状态的一个快照。
2.获取和拉取
获取,可以看到所有其他人推送到远程仓库的内容,但是不会更改本地分支上的代码。
拉取,是获取和merge的结合,当获取到当前分支的远程分支上的更新后,还会对本地工作副本和远程仓库该分支的代码进行比对,如果远程有本地没有的代码,就会把远程的更新部分加入到本地文件中。这里merge的时候很容易产生冲突,因为git是按照行进行比对的,就算是一个空白行也会产生冲突。当产生冲突的时候,我们可以右键冲突的文件,并选择使用他人版本还是选择自己的版本。
3. 分支
多人协同开发的时候,为了保证master分支上代码的正确性以及方便多人同时进行开发并保有自己的分支提交状态,我们会各自从master分支上创建一个分支作为自己的开发分支。在SourTree图形化界面上,从主分支创建分支的方法如下:
右键本地分支master,创建新分支,命名local-master。
4.回滚提交
回滚提交:回滚本地工作副本为指定提交的代码状态,并创建一个Revert commit。
如果想要将本地副本的代码状态重新回到某一个提交的代码状态,可以右键某一个提交并点击“回滚提交”。
5.分支应用
现在有这样一个场景,我在特性分支上A进行开发,这时master分支上有一个新的commit,我想要拉取下来并将其更改添加到特性分支A上。
那么首先我需要双击本地的master分支切换到该分支,然后选择拉取。
再双击切换到特性分支A上,右键本地分支master,选择“合并master到当前分支”,这样本地分支A就有master上这次更改了。