创建新的 git 分支。 git 远程添加有什么意义?
Creating new git branch. What is the point of git remote add?
我正在按照名为 Create a new branch with git and manage branches 的指南创建一个新分支。
到目前为止我有:
git checkout -b [new_branch_name]
git push -u origin dev
但下一个命令似乎毫无意义。为什么需要它?
git remote add [name_of_your_remote] [new_branch_name]
我刚刚创建了一个新分支。我已经让 Git 意识到这一点,所以我可以将代码拉入我的新分支。为什么我现在需要创建一个远程分支并为其命名?这个名字应该和我当地的分店一样吧?
有人可以解释一下这个命令的用途吗?
编辑:我问这个的原因是因为我想知道创建一个新分支的最低限度,编辑它的代码,提取最新的和commit/push我的更改
Surely the name should be the same as my local branch?
不一定,但是这些命令乱码严重。 git remote add <remote> <url>
添加了一个新的遥控器,但您已经有了一个。它不需要或影响任何分支。
作为记录,您可以通过以下方式为您的分支设置上游名称:
git push -u origin dev:<newname>
对于 git,远程存储库(或简称为 remote)是一个不同于您现在所在的存储库的存储库,通常称为作为您的 local 存储库。远程可能位于您当前的主机上,甚至可能与同级目录中的位置一样近,或者远程可以实际驻留在本地网络或 Internet 上其他地方的主机上。
鉴于您已成功 运行
git checkout -b dev
git push -u origin dev
这意味着您必须已经克隆了本地存储库。作为克隆过程的一部分,git 设置一个名为 origin
的远程指向您克隆的存储库。
如果该存储库是您唯一想要推送和拉取的存储库,那么您就完成了。无需再次创建遥控器。
涉及第三个存储库 的常见情况是,如果您在 GitHub 上分叉了一个存储库,并希望使您的分叉与上游保持同步,即您正在跟踪的主存储库。您这样做的原因是您不能直接提交到项目的主存储库,但 可以 提交到您自己的分支,然后发送拉取请求。
假设你希望至少让你的叉子保持最新,甚至可能为 Awesome Project 做出贡献。您的操作顺序是
- 在 GitHub 上,fork 您想要贡献的存储库。这个主存储库将成为您的
upstream
.
- 克隆你的叉子:
git clone git@github.com:user997112/awesome-project.git
- 创建
upstream
遥控器:git remote add upstream https://github.com/awesome/awesome-project.git
有了这个设置,您现在正在与三个存储库交互:本地克隆,然后是两个远程(从本地克隆的角度来看),它们是您的 GitHub 分支和原始的上游 Awesome项目主存储库。
保持所有主分支同步(即,您的分支 master
和克隆的 master
与 upstream
相同)涉及 运行宁
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
使用上面的命令将允许您拥有一个“肮脏的主人”,这意味着在您的本地 master
分支上进行更改并合并来自上游的更改。对于较新的 git 用户,我 强烈 建议改用清洁大师。这意味着在 master
以外的分支中进行所有更改。这将减少混乱。使用这种更安全的方法,将合并命令更改为需要快进合并。
git merge --ff-only upstream/master
这样,如果您错误地向本地 master
提交了某些内容,git 将不会创建合并提交,您稍后必须返回并解开以达到这样的状态对你有意义。
另请参阅
我正在按照名为 Create a new branch with git and manage branches 的指南创建一个新分支。
到目前为止我有:
git checkout -b [new_branch_name]
git push -u origin dev
但下一个命令似乎毫无意义。为什么需要它?
git remote add [name_of_your_remote] [new_branch_name]
我刚刚创建了一个新分支。我已经让 Git 意识到这一点,所以我可以将代码拉入我的新分支。为什么我现在需要创建一个远程分支并为其命名?这个名字应该和我当地的分店一样吧?
有人可以解释一下这个命令的用途吗?
编辑:我问这个的原因是因为我想知道创建一个新分支的最低限度,编辑它的代码,提取最新的和commit/push我的更改
Surely the name should be the same as my local branch?
不一定,但是这些命令乱码严重。 git remote add <remote> <url>
添加了一个新的遥控器,但您已经有了一个。它不需要或影响任何分支。
作为记录,您可以通过以下方式为您的分支设置上游名称:
git push -u origin dev:<newname>
对于 git,远程存储库(或简称为 remote)是一个不同于您现在所在的存储库的存储库,通常称为作为您的 local 存储库。远程可能位于您当前的主机上,甚至可能与同级目录中的位置一样近,或者远程可以实际驻留在本地网络或 Internet 上其他地方的主机上。
鉴于您已成功 运行
git checkout -b dev
git push -u origin dev
这意味着您必须已经克隆了本地存储库。作为克隆过程的一部分,git 设置一个名为 origin
的远程指向您克隆的存储库。
如果该存储库是您唯一想要推送和拉取的存储库,那么您就完成了。无需再次创建遥控器。
涉及第三个存储库 的常见情况是,如果您在 GitHub 上分叉了一个存储库,并希望使您的分叉与上游保持同步,即您正在跟踪的主存储库。您这样做的原因是您不能直接提交到项目的主存储库,但 可以 提交到您自己的分支,然后发送拉取请求。
假设你希望至少让你的叉子保持最新,甚至可能为 Awesome Project 做出贡献。您的操作顺序是
- 在 GitHub 上,fork 您想要贡献的存储库。这个主存储库将成为您的
upstream
. - 克隆你的叉子:
git clone git@github.com:user997112/awesome-project.git
- 创建
upstream
遥控器:git remote add upstream https://github.com/awesome/awesome-project.git
有了这个设置,您现在正在与三个存储库交互:本地克隆,然后是两个远程(从本地克隆的角度来看),它们是您的 GitHub 分支和原始的上游 Awesome项目主存储库。
保持所有主分支同步(即,您的分支 master
和克隆的 master
与 upstream
相同)涉及 运行宁
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
使用上面的命令将允许您拥有一个“肮脏的主人”,这意味着在您的本地 master
分支上进行更改并合并来自上游的更改。对于较新的 git 用户,我 强烈 建议改用清洁大师。这意味着在 master
以外的分支中进行所有更改。这将减少混乱。使用这种更安全的方法,将合并命令更改为需要快进合并。
git merge --ff-only upstream/master
这样,如果您错误地向本地 master
提交了某些内容,git 将不会创建合并提交,您稍后必须返回并解开以达到这样的状态对你有意义。
另请参阅