从远程仓库下载代码到本地:
git clone [email protected]:itwzhangzx02/mybatis-3.git
git fetch [email protected]:itwzhangzx02/mybatis-3.git
pull = fetch+merge (会多一个合并的记录出来)
pull = fetch+rebase(不会多一个合并的记录出来)
本地做了修改后,直接add . 将我们的工作区所以更改提交到暂存区中
git commit “注释” 将暂存取里的提交内容提交到我们的本地仓库中。
新建分支并切换到新分支(NPEBugFix)下:
git checkout -b NPEBugFix
我们在这个分支下,做新增或修改。使用命令查看我们的状态,git status
提示我们当前有一个新增文件,需要我们add操作
git add .
git commit -m "这是注释内容"
这时候我们切到主分支去,然后查看我们的仓库
git checkout master
我们的本地仓库中没有发现文件 《git的分支学习》
我们把这个分支上的变更,合并给我们的master分支。
这儿有俩种做法:merge(合并master的某个提交)和rebase(将我们分支的变化,放到指定的master的某个提交的后面)
第二种合并分支的方法是 git rebase。Rebase 实际上就是取出一系列的提交记录,“复制”它们,然后在另外一个地方逐个的放下去。
git rebase A分支 B分支 将B分支的提交放到A分支的后面 ,我们处于A分支下 时,等价于 (A分支下)git rebase B分支
切换到master分支,然后
git rabase NPEBugFix
然后我们查看你我们的master分支,发现已经看到分支上的提交记录。提示我们比远程仓库多一次提交。
至于merge命令,直接 git merge NPEBugFix.将NPEBugFix分支合并到我们当前分支master。
另外,假如我们的分支提交了三次 c1,c2,c3.然后我们往master合并的时候,不想要c2的提交记录。(rebase的时候全部拿过来了,而使用cherry-pick的时候,我们可以自己决定拿哪些提交过来)
使用如下命令:
git cherry-pick c1 c3
甚至我们多个分支的提交记录,都可以按顺序拿到master下面。
假设分支1提交记录 c1 ,分支2提交记录 c2,分支3提交记录c3
然后我们,按顺序拿到master下面
git cherry-pick c2,c1,c3
有时候,master分支上不想要某些提交记录的时候。
比如,我们一开始rebase的那个记录,现在不需要了。
git revert HEAD (会多一次撤销的提交记录)
或者
git reset HEAD^ (相当于直接删除一个提交)