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

标签 git github version-control gitlab branch

这里是 Git 新手!

这是一个非常基本的问题,但我似乎在试图解决这个问题。我仍处于“玩弄 repo ”阶段并开始阅读一些书籍。请保持友善:)

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

然后我是否将分支推回远程分支,然后将远程分支与远程主分支 merge ,然后将远程主分支推回本地主分支?我很困惑 merge 我的更改的正确/建议顺序是什么。推送远程 -> 本地更好,还是获取或 pull 更好?我将协作工作,因此当我在我的分支上工作时,其他人可能已经更改了远程主机。

跟踪分支是否只是节省时间(这样当你说“git push”时你不必明确 - 它知道你可能想要推送到哪里)?我假设他们实际上并不跟踪更改,例如更新本地主机以匹配远程主机。

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

最佳答案

您提出了很好的问题,而且您似乎触及了所有考虑的 Gist 。

  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. 当您的分支准备好 merge 到 origin/master 时, checkout 主控, pull 远程主控(正如您所怀疑的,这不会自动完成)以便您是最新的,然后将您的分支 merge 到顶部。将 master 推向上游。 git checkout master; git pull; git merge feature-123; git push

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

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

关于Git:在本地分支中进行编辑,以推送回远程存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53784641/

相关文章:

git - 当其中存在 merge 冲突时 merge git 注释

python - 为什么我的github上的python包没有显示使用的信息?

svn - 来自 SVN 的复古 : Learning CVS,

android - 从上游分支 merge 到供应商分支,其中供应商分支包含上游提交的子集

git - 将 Azure DevOps 连接到内部 IP 存储库

git - git-diffall和git difftool --dir-diff无法与Araxis Merge一起使用

git - 在 Visual Studio 2015 中同步时使用 rebase

git - '致命的 : not a git repository (or any of the parent directories): . git'

GIT - 谁 push/编写了最多的代码

git - Visual Studio 2015 源代码控制系统