我是新手,了解我使用它的大部分内容,但当我想合并到掌握并添加我的更改时,我不知道发生了什么。
这是我的流程:
首先,我进行编辑并将其提交给my-branch。然后我做
git checkout master
git pull origin master
git checkout my-branch
git merge master
所以我认为在第一行
git checkout master
我正在切换到主分支。我不完全确定这意味着什么。但我认为这意味着如果我在那时提交了一些内容,它将直接改变主人。我知道我的文件保持相同的形状并保持我的所有编辑。
然后,我不知道第二行
git pull origin master
在第三行
git checkout my-branch
我正在切换回我的分支(再次,并不完全确定其含义)。
然后,最后,我合并了两个。
git merge master
我不知道未合并文件的位置,但是当我在git网站上发起拉取请求时,我确实看到了不错的差异。
我也有点困惑,为什么我在网站上发起的是“拉取请求”,因为它看起来更像是一个提交。
答案 0 :(得分:1)
git checkout master
切换到master
分支。将删除my-branch
中{em>已提交但master
中未提及1>}的更改,并应用master
但my-branch
中未提交的更改到存储库。是的,如果您现在开始更改和提交文件,您将改变master
。
请注意,您在my-branch
但尚未提交时所做的更改将会保留。如果您在分支中提交以切换到相同位置进行更改,则可能会导致冲突。如果存在冲突,git不会让您切换分支,直到您提交这些更改,或stash
它们。
git pull origin master
这有两件事:
fetch
更改origin
,即将其下载到设置为跟踪远程分支的本地分支。这个本地远程跟踪分支不是你通常会与之交互的东西,它由git自动处理。事实上,它甚至不会显示git branch --list
。merge
将这些更改master
。有时,如果git无法自行确定如何安全地执行此操作,则可能必须执行手动合并。请注意,这并未启动"拉取请求"。它被称为pull
,因为它将远程更改拉入本地存储库。拉取请求只是要求别人拉你。
git checkout my-branch
这与之前的结账相同,只是方向相反。
git merge master
这会将master
所有但my-branch
没有的更改合并到my-branch
中。因此,my-branch
包含master
所有内容,但master
不对my-branch
进行任何新的更改。