sách gpt4 ăn đã đi

Git merge - merge 后的分支会发生什么?

In lại 作者:太空狗 更新时间:2023-10-29 14:31:48 27 4
mua khóa gpt4 giày nike

我有一个关于 git merge 的问题。假设我的存储库中有两个分支(本地和远程):master 和 test。当我在测试分支上工作时,主分支被其他人更新了。在终端中,我写:

git checkout master
git pull origin master

这会用最近添加的内容更新我的 master 分支吗?然后,我完成了我在测试分支中所做的事情。
如果我去终端写:

git checkout master
git merge test
git push origin master

这会将我的测试分支 merge 到我的主分支中,然后将更改推送到 github 上(假设没有冲突)?我的问题是:测试分支会发生什么?它是否保持与 merge 前相同的方式?还是 test 和 master 分支都变得一样了?我现在应该这样做来更新测试分支吗?

git checkout test
git pull origin master
git push origin test

Cảm ơn trước.

câu trả lời hay nhất

If I go to the terminal and write:

git checkout master
git merge test
git push origin master

This merges my test branch into my master branch and then pushes the changes to github right (let's assume there are no conflicts)? My question is: what happens to the test branch?

什么都没有。

请记住,分支tên 只是(单个)提交的名称。为了绘制它们,我喜欢将提交本身绘制为圆形 cái 节点,或者当我们需要谈论特定提交时使用大写单个字母,并用线条连接它们:

...--o--o--o--o <-- master
\
o--o--o <-- test

每个提交都“指向”其父提交——所以如果我们给每个提交一个字母名称,并绘制所有中间箭头,我们得到:

...<-A<-B<-C<-D <-- master
\
E<-F<-G <-- test

分支名称bậc thầyBài kiểm tra 实际上包含两个分支提示的原始哈希ID。也就是说,如果您检查文件 .git/refs/heads/master1,您会发现其中一个丑陋的 40 字符散列,a139fc7。 .. 或其他内容,在其中。

实际上,bậc thầy 指向提交D,而Bài kiểm tra định hướngG。提交 D 指向提交 C,后者又指向 B,依此类推;并提交 G định hướng FF định hướng EE định hướng B(这太在这里用纯文本绘制箭头很棘手,因为一些好的箭头绘制字体只适用于某些机器)。

当您在某个分支上并进行 提交时,Git 进行此提交的方式是将其父级设置为当前分支提示的新提交写入,然后一次新提交安全地存储在存储库中,使用新提交的 ID 重写分支 tên 文件。这使得分支名称指向新提示。新 ID 无处可去,因此 khác 分支名称没有任何变化。

一个 merge 提交有hai parent ,所以当你git merge test 并且它工作时,你会得到这个:

...--o--o--o--o---o <-- master
\ /
o--o--o <-- test

请注意 Bài kiểm tra 根本没有移动,但是 bậc thầy 移动了——并且新的 merge 提交指向两个不同的早期提交:旧的分支提示 bậc thầy,以及 Bài kiểm tra 的(未更改的)提示。


1我们不保证这个文件将来会存在,或者保留在这个位置或者有这个格式,但现在,从今天的 Git 版本到 2.10,你通常会有那个文件.

关于Git merge - merge 后的分支会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848521/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress