cod*_*ugh 3 git shortcut git-merge git-checkout git-branch
假设我有2个分支,master和codyDev.在我开始对codyDev进行更改之前,我会执行以下操作以确保我从codyDev上的最新主提交开始:
git checkout master
git pull
git checkout codyDev
如果改变, git merge master
前3个步骤是否有快捷方式,所以我不必离开我的codyDev分支?我倾向于发现主人没有更新,结账/拉/结账是3个不必要的命令.
请注意,我让Google试图找到我的问题的答案,但似乎有各种各样的潜在和有些复杂的解决方案.看起来最吸引人的是影响的东西git fetch origin master:master,但我读到的解释并不是很清楚,因为这些例子有点复杂.我也发现自己想知道"为什么要取而不是拉"(即git pull origin master:master)?
您可以codyDev使用最新更改来更新分支,master而无需实际更改分支:
git checkout codyDev # ignore if already on codyDev
git fetch origin # updates tracking branches, including origin/master
git merge origin/master # merge latest master into codyDev
Run Code Online (Sandbox Code Playgroud)
这里的诀窍是将最新版本合并master到codyDev您实际上并不需要更新您的本地master分支.相反,您可以只更新远程跟踪分支origin/master(通过git fetch),然后将其合并.
您也可以直接master使用本地分支更新本地分支,git fetch而无需实际签出本地master分支:
# from branch codyDev
git fetch origin master:master
Run Code Online (Sandbox Code Playgroud)
但是,这仅在合并是本地master分支的快进时才有效.如果合并不是快进,那么这将不起作用,因为在出现合并冲突的情况下需要工作目录.
请阅读此处了解更多信息.
您可以为您添加别名~/.gitconfig.
[alias]
start = !git checkout master && git pull origin master && git checkout -b
Run Code Online (Sandbox Code Playgroud)
或者运行它以从命令行添加它:
git config --global alias.start '!git checkout master && git pull origin master && git checkout'
Run Code Online (Sandbox Code Playgroud)
此外,从上面的代码可能不太清楚,但请确保后面有空格-b.
您也可以省略-b并传递它,以便您可以选择在现有分支上操作.在这种情况下,您将拥有:
[alias]
start = !git checkout master && git pull origin master && git checkout
Run Code Online (Sandbox Code Playgroud)
然后打电话给它
git start -b newBranch
Run Code Online (Sandbox Code Playgroud)
要么
git start existingBranch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |