git cherry-pick 可以合入某个分支的commit,开发功能需要新建一个分支,开发完毕之后要将新键分支修改code合到主分支上去就需要用到这个命令。
当下git内容
lj@lj-virtual-machine:~/111111/git/gittest$ git branch
* master
lj@lj-virtual-machine:~/111111/git/gittest$ ls
test.sh
lj@lj-virtual-machine:~/111111/git/gittest$ cat test.sh
11
lj@lj-virtual-machine:~/111111/git/gittest$
新建一个分支test,查看该分支,内容和master分支上内容一样
lj@lj-virtual-machine:~/111111/git/gittest$ git checkout -b test
切换到一个新分支 'test'
lj@lj-virtual-machine:~/111111/git/gittest$ git branch
master
* test
lj@lj-virtual-machine:~/111111/git/gittest$ cat test.sh
11
lj@lj-virtual-machine:~/111111/git/gittest$
增加test.sh内容(22),切换分支,这时候不能切换分支,因为你的代码boss还没有审核,所以你要先把你的修改commit并push到远端。
lj@lj-virtual-machine:~/111111/git/gittest$ git status
位于分支 test
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: test.sh
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
lj@lj-virtual-machine:~/111111/git/gittest$ git add test.sh
lj@lj-virtual-machine:~/111111/git/gittest$ git commit
[test 5e78967] test
1 file changed, 1 insertion(+)
lj@lj-virtual-machine:~/111111/git/gittest$ git log
commit 5e78967005660b5debe810b4435a5d638c6a757d
Author: yaori <test@runoob.com>
Date: Thu Mar 28 20:46:43 2019 +0800
test
commit bfbbb585de8626fecfc4cd2afecf414f04637af2
Author: yaori <test@runoob.com>
Date: Thu Mar 28 20:30:40 2019 +0800
:wq
commit 0d4a4182f4ca18e14919727bbedffccc4f187ac7
Author: yaori <test@runoob.com>
Date: Thu Mar 28 19:25:03 2019 +0800
1
commit 6aadf6389b03a29123a72f26071ff57b514e4467
Author: yaori <test@runoob.com>
Date: Thu Mar 28 09:26:05 2019 +0800
test branch cherry-pick
commit 415428a4be7cc41a1d91381fe6b0dbe88b471cd0
Author: yaori <test@runoob.com>
lj@lj-virtual-machine:~/111111/git/gittest$ git push origin test
Counting objects: 6, done.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (3/3), 233 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://git.iservernetwork.com/iserver/gittest.git
* [new branch] test -> test
lj@lj-virtual-machine:~/111111/git/gittest$
这次的commit id是5e78967005660b5debe810b4435a5d638c6a757d
git show commit id查看修改了啥
lj@lj-virtual-machine:~/111111/git/gittest$ git show 5e78967005660b5debe810b4435a5d638c6a757d
commit 5e78967005660b5debe810b4435a5d638c6a757d
Author: yaori <test@runoob.com>
Date: Thu Mar 28 20:46:43 2019 +0800
test
diff --git a/test.sh b/test.sh
index b4de394..bfc04a9 100644
--- a/test.sh
+++ b/test.sh
@@ -1 +1,2 @@
11
+22
lj@lj-virtual-machine:~/111111/git/gittest$
在主分支下面git cherry-pick commit id(test分支)
lj@lj-virtual-machine:~/111111/git/gittest$ git cherry-pick 5e78967005660b5debe810b4435a5d638c6a757d
位于分支 master
您的分支领先 'origin/master' 共 1 个提交。
(使用 "git push" 来发布您的本地提交)
您在执行拣选提交 5e78967 的操作。
无文件要提交,干净的工作区
之前的拣选操作现在是一个空提交,可能是由冲突解决导致的。如果您无论如何
也要提交,使用命令:
git commit --allow-empty
否则,请使用命令 'git reset'
然后在push一次,test分支里面的修改就push到远程master分支了