Git里怎么自动commit到一个新分支?
2014-12-17 23:44
337 查看
通常,正常的流程应该是这样的:
1、从master主线创建新分支
2、checkout这个新分支
3、在working目录上做修改
4、commit修改到分支
OK,很容易理解。问题是,现在的顺序不是这样子的,实际情况是:
1、从master主线直接checkout
2、在对应主线的working目录上直接修改代码
3、现在准备commit了,希望随这个commit自动创建一个分支,但当前working目录仍然对应master主线
How?我知道SVN里checkout时可以-b顺便创建一个新分支,但是,可以“svn commit -b <新分支名>”吗?(一个麻烦的解决方案是:先远程copy,再switch,然后commit,问题是switch的过程中会做一个递归的比对,效率非常差),Git里怎么做?Git本身有一个Stash/Staging特性,似乎是用于保存临时的修改。
我必须小心操作。否则chromium的代码就不好方便地GYN repo与上游同步了。
版本管理好久不用,都有点生疏了:以前SVN用的倒是挺熟;TortoiseHg/Mercurial也用过一段时间,Mercurial看起来是个分布式的DVCS,但它维护一个全局的一致视图,不像Git这种完全分布式的,可以cherry-pick。Git虽然看过书,但没有熟练使用。
可能对于Git而言,git checkout -b是一个廉价操作?(但是这个checkout会覆盖我当前working目录下的修改吗?)
TO BE CONTINUED
参考:https://code.google.com/p/chromium/wiki/GitCookbook
1、从master主线创建新分支
2、checkout这个新分支
3、在working目录上做修改
4、commit修改到分支
OK,很容易理解。问题是,现在的顺序不是这样子的,实际情况是:
1、从master主线直接checkout
2、在对应主线的working目录上直接修改代码
3、现在准备commit了,希望随这个commit自动创建一个分支,但当前working目录仍然对应master主线
How?我知道SVN里checkout时可以-b顺便创建一个新分支,但是,可以“svn commit -b <新分支名>”吗?(一个麻烦的解决方案是:先远程copy,再switch,然后commit,问题是switch的过程中会做一个递归的比对,效率非常差),Git里怎么做?Git本身有一个Stash/Staging特性,似乎是用于保存临时的修改。
我必须小心操作。否则chromium的代码就不好方便地GYN repo与上游同步了。
版本管理好久不用,都有点生疏了:以前SVN用的倒是挺熟;TortoiseHg/Mercurial也用过一段时间,Mercurial看起来是个分布式的DVCS,但它维护一个全局的一致视图,不像Git这种完全分布式的,可以cherry-pick。Git虽然看过书,但没有熟练使用。
可能对于Git而言,git checkout -b是一个廉价操作?(但是这个checkout会覆盖我当前working目录下的修改吗?)
TO BE CONTINUED
参考:https://code.google.com/p/chromium/wiki/GitCookbook
相关文章推荐
- git的一个分支在本地修改了很多,怎么能直接将本地的直接push到git的另外一个分支呢
- git只合并某一个分支的某个commit
- git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
- 怎么写一个好的 Git commit message
- git 如果队友新上传一个分支 本地应该怎么拉下来
- git在一个分支上修改了代码但是不想commit到本地git库,需要切换一个分支去修改代码,这个时候也可以使用git stash
- git本地仓库关联多个remote,怎么用本地一个分支向不同remote不同分支推送代码
- git@Osc当中怎么把一个分支的内容完全替换成另一个分支的内容
- git reset到之前的某一个commit或者恢复之前删除的某一个分支
- git 怎么在master下创建一个新的分支
- 一个成功的Git分支模型 .
- 如何让git自动在commit message中加入你需要的s-o-b?
- ---GITHow 如何undo一个已经被push到上游服务器的commit
- local->gerrit->git->local 本地有个git一样的commit,这时怎么让local跟本地同步
- git cherry-pick + commit id 单独merge 任意一个branch的任意一个commit到本branch上
- 从Git仓库中恢复已删除的分支或丢失的commit
- 一个成功的Git分支模型
- git如何合并只有两个commit到一个
- linux着色和git分支自动显示
- 一个成功的Git分支模型