Git:在本地分支中进行编辑,以推送回远程仓库

Git: Making edits in a local branch, to push back to remote repo

Git新手来啦!

这是一个非常基本的问题,但我似乎把自己束缚在了结中,试图绕开它。我还处于 'playing around with repos' 阶段,开始阅读一些书籍。请友善 :)

如果...我有一个远程仓库,我该怎么办。我将它克隆到我的本地区域。我做一个分支。我将分支推回,以便它存在于两个地方。我对本地分支中的代码进行了一些编辑...

然后我是否将分支推回远程分支,然后将远程分支与远程主控合并,然后将远程主控推回我的本地主控?我对 correct/advised 合并更改的命令感到困惑。推送远程 -> 本地,还是获取或拉取更好?我将协同工作,所以当我在我的分支上工作时,其他人可能已经更改了远程主机。

跟踪分支只是为了节省时间(所以当你说 'git push' 时你不必明确 - 它知道你可能想推送到哪里)?我假设他们实际上并没有跟踪变化,例如更新本地主机以匹配远程主机。

非常感谢。我很困惑,但我真的很想学习这个!

如果我理解你的场景,大概是这样的:

您从 master 创建了一个新分支(我们称之为“newFeature”),对 newFeature 进行了一些更改并希望在 master 上合并.如果是这样,我认为正确的做法是:

  1. newFeature
  2. 上提交并推送更改
  3. 结帐大师
  4. 合并newFeaturemaster
  5. origin推送到master

我假设你现在知道如何做 git 东西,但如果不会请告诉我。

你问的问题很好,而且你似乎抓住了所有的考虑点。

  1. 克隆远程
  2. 来自上游分支的分支(假设 origin/master 分支到 feature-123)。 git checkout master; git pull; git checkout -b feature-123
  3. 编写、测试、提交更改。 git add -u; git commit -v
  4. 当处于值得推送的状态时,推送到原点,为您的本地功能分支设置上游 git push --set-upstream origin feature-123
  5. 当您的分支准备好合并到 origin/master 时,结帐 master,拉取远程 master(这 不会 自动完成,正如您所怀疑的那样)以便你是最新的,并在上面合并你的分支。将 master 推上游。 git checkout master; git pull; git merge feature-123; git push

如果您有合并冲突,例如同时对 master 进行的冲突更改,git 会在您合并时为您找到它。您还可以将 master 拉入您的功能分支以保持最新状态(越早发现冲突,通常越容易解决它们)。

并记住 git 新手的黄金法则:永远不要 强制推送,如果遇到这种情况,只需创建一个新分支。如果您不强制推送,您总是可以比较并找到您的更改。