Jor*_*jon 17 git version-control git-branch
feature-x当我突然遇到一个应该在另一个分支上真正解决的问题时,我正在分支上做一些工作hotfix.
我想创建一个带有该更改的提交,但是在hotfix分支上.
从这个问题我理解标准程序将是
# On branch feature-x
git stash
git checkout hotfix
git stash pop
git add -A
git commit -m "Fixed issue #562"
Run Code Online (Sandbox Code Playgroud)
如果我在分支上没有进行很多更改,那将会有效feature-x,这会引起与分支的冲突hotfix.我想避免必须解决不必要的冲突.
为了避免这种情况,我想我只能从存储中提取单个文件,如此答案所述.所以程序将是:
# On branch feature-x
git stash
git checkout hotfix
git checkout stash@{0} -- <src/buggyfile.xxx>
git add -A
git commit -m "Fixed issue #562"
Run Code Online (Sandbox Code Playgroud)
然后我应该回去 feature-x
git checkout feature-x
git stash pop
Run Code Online (Sandbox Code Playgroud)
虽然有一种方法可以直接从另一个分支引入文件,但我想知道是否有办法将文件发送到另一个分支,没有这一切麻烦.实际修改只有几个字符.
Mar*_*Liu 10
为了提交一个文件从feature-x到hotfix,有一个简单的方法来做到这一点(假设提交您刚才添加的feature-x分支4712df727f7303bc95545d0f6a024129be97c5c2):
# on branch hotfix
git checkout 4712d filename
git commit
Run Code Online (Sandbox Code Playgroud)
您可以提交变化feature-x和樱桃采摘它hotfix,如下所示:
# On branch feature-x
git add <file>
git commit -m "Fixed issue #562" // Note commit-id
git checkout hotfix
git cherry-pick <commit-id>
git push origin hotfix
Run Code Online (Sandbox Code Playgroud)
根据@torek注释扩展答案,使用git-worktree,如下所示:
git worktree add -b hotfix ../hotfix origin/master
cd ../hotfix/
git add <file>
git commit -m "Fixed issue #562"
git push origin hotfix
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10312 次 |
| 最近记录: |