对于git的使用命令不是很熟悉,一般都是普通的使用git pull, git add, git commit, git push之类的命令,然后后来切换多个分支了,合并分支使用git merge 命令去合并。然后在做一个项目的时候,合并test分支代码到master的时候,提示没有权限,一时蒙蔽了,那么这样怎么合并代码到主干。一时苦恼,就去搜索了下如何合并分支文件到主干,这个时候就发现了checkout -p命令

    1. git checkout -p命令

      这是合并文件的命令,将一个分支的文件追加到另一个分支上,例如:
      当前分支: test 文件: a.txt
      切换到分支master: git checkout master
      执行命令 git checkout -p test a.txt
      这时候你就能看到master分支上的这个 a.txt文件了。
      但是这个命令有一个缺点,如果master分支上没有a.txt文件,那么这个文件加不过来,毕竟这个命令只是追加

    2. git checkout 命令

    那么如果要合并的文件master分支没有呢,那就执行下面的命令
    git checkout master
    git checkout test a.txt
    这样你就会发现a.txt文件copy到master来了

    1. git cherry-pick 命令

    主要用于合并commit,如果test分支你有一个或者多个commit想要合并到master,那么可以使用这个命令
    加入commit id分别为 aaaaaa, bbbbbb
    切换到master分支: git checkout master
    假如要合并一个commit id,那么执行: git cherry-pick aaaaaa
    假如要合并aaaaaa-bbbbbb之间的commit id,执行: git cherry-pick aaaaa…bbbbbb (注意:这是一个左开右闭的区间,即不包括aaaaa这个commit id)
    那么如果我们需要包含呢,可以执行: git cherry-pick aaaaaa^…bbbbbb

    这个只是个人在使用的时候的遇到的一些使用,肯定比不上文档的完善,想要了解更多的可以去看文档或者廖雪峰老师的博客,其中对于git的使用有很多描述。