【发布时间】:2019-12-08 04:43:34
【问题描述】:
我刚刚从master 创建了一个名为new_branch 的分支
所以我检查了那个新分支,添加了一个新文件,然后添加/提交/推送。
git add new_file.php
git commit -m "A new file"
git push origin new_branch
所以在那之后,我克隆了我的 repo 示例,问题是我在新分支中添加的那个文件不在克隆的工作树的主分支中。我应该怎么做才能在克隆的工作树的主分支中找到那个新文件?
注意:抱歉,因为标题不准确。也许有人想改变它。
【问题讨论】:
-
听起来你混淆了
master(一个实际的分支)和HEAD(一个指向分支的指针,表示哪个分支会受到git commit的影响等)。您将新文件提交给new_branch,而不是master,这就是您推送到的分支。所以当你再次克隆远程仓库时,你需要再次签出new_branch才能看到new_file。 -
new_branch参数是指origin上应该更新的分支,而不是本地存储库中要推送 from 的分支。这始终是当前签出的任何分支(恰好是 local 分支,也名为new_branch)。 -
@chepner 是的,你是对的:我刚刚在我的克隆仓库中签出了分支
new_branch,我可以找到该文件。但是,如何在克隆后自动获取master分支中的该文件? -
有多种方式,但您选择哪一种取决于您希望
master和new_branch之间的关系类型。您可以将new_branch合并为master;你可以从new_branch到master中挑选一个提交;你可以检查new_branch(将new_file添加到你的工作目录, then check outmaster`(将new_file作为一个未跟踪的文件留在你的工作目录中),然后将new_file提交给master,就好像它是一个全新的文件。 -
您选择哪个选项可能还取决于问题的答案“为什么首先将
new_file提交给new_branch而不是master?”
标签: git git-branch git-commit