mkdir test_demo
cd test_demo
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@github.com:youname/test_demo.git
git push -u origin master

执行git cherry-pick 解决合并冲突之前的提交,好像会自动pull下分支的最新提交内容,造成当前提交下的内容冲突。

为什么会再现之前的冲突,从哪里pull下来的呢?最新commit?

为什么会向暂存区放内容?

可以运行 git fetch origin 来同步远程服务器上的数据到本地。

那么用 git pull 不是也可以吗?区别是啥?

subversion合并分支消耗太大。然而在 Git 中,一天之内建立、使用、合并再删除多个分支是常见的事。

对于 “修复未提交文件中的错误” 时我们可以使用

git reset -- yourfile

这条命令会把文件恢复到index中的版本,而不是恢复到 HEAD revision。
当然,如果你没有把修改后的文件内容添加到index ,这个命令还是可以把你所做的修改恢复成你本地最初始的状态。

建议最好还是能看一下英文版,可以更准确的理解原著中要表达的意思。

如果你只是要恢复一个文件(修复未提交文件中的错误),如”hello.rb”, 你就要使用 git checkout

$ git checkout -- hello.rb

git 建立远程分支缩写

$ git remote add bob /home/bob/myrepo
$ git log -p master..bob/master

上面的命令把Bob从Alice的主分支(master)中签出后所做的修改全部显示出来。
当检查完修改后,Alice就可以把修改合并到她的主分支中。

$ git merge bob/master

$ git diff HEAD

上面这条命令会显示你工作目录与上次提交时之间的所有差别,这条命令所显示的 内容都会在执行”git commit -a”命令时被提交。

这句等同于svn中的 svn diff。即比较工作副本与服务器之间的差异。