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项目的要目录下。
, 如何把它放到 本地 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项目的要目录下。
相关文章推荐
- repo 常用命令两条 && git revert和git reset的用法
- git revert 和reset的区别
- git revert和git reset的区别
- git patch生成方法
- Git代码回滚:Reset、Checkout、Revert 的选择
- 如何使用git 生成patch
- git format-patch生成补丁命令详解
- git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。
- git revert和git reset的区别
- diff生成patch
- git revert 和 git reset的区别
- git diff 生成patch, git apply patch 打补丁方法说明,以及分支管理的简单操作。
- GoogleCode不能生成密码的解决方式(101 (net::ERR_CONNECTION_RESET))
- 级有用的git reset --hard和git revert命令
- git生成patch
- reset, checkout和revert
- git中reset与revert的使用
- git am / format-patch / cherry-pick
- git reset/revert 回滚
- 使用Git生成patch和应用patch