您的位置:首页 > 其它

git cherry-pick,revert,reset,生成patch

2015-01-06 20:18 120 查看
在本地 master 分支上做了一个commit ( 38361a68138140827b31b72f8bbfd88b3705d77a )
, 如何把它放到 本地 old_cc 分支上?

需要先切到old_cc分支上然后git cherry-pick <commit id>,commit
id为需要提交代码的commit_id,

这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:

git commit --amend 来对commit进行修改。然后git
push即可完成!
git revert <commit id>回退提交的代码,然后git
push即可生效
git reset --hard强制将本地代码还原至上次拉的节点只要不操作git
push没事!
git
reset --hard commit_id 强制将本地代码还原至某个节点

git checkout的主要功能就是迁出一个分支的特定版本。默认是迁出分支的HEAD版本
示例:
git checkout master
//取出master版本的head。
git checkout tag_name
//在当前分支上 取出 tag_name 的版本
git checkout master
file_name
//放弃当前对文件file_name的修改
git checkout
commit_id
file_name (或者路径)//取文件file_name的 在commit_id是的版本。commit_id为 git commit 时的sha值。

生成patch

之前提交的记录

git log <== to git the previous commit hash code.

git format-patch -s
38361a68138140827b31b72f8bbfd88b3705d77a

或者使用

git format-patch HEAD^ <==最近的1次commit的patch

git format-patch HEAD^^ <==最近的2次commit的patch

git format-patch HEAD^ <==最近的3次commit的patch

git format-patch HEAD^ <==最近的4次commit的patch

将补丁打上去。
patch -p1 < 0001-Added-xxxx-test.patch

注: 0001-Added-xxxx-test.patch为想要打的补丁的名字。运行该命令需在git项目的要目录下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: