我知道如何创建一个跟踪远程分支的新分支,但是如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一个更简单的方法.
我创建了一个本地分支,我想在上游"推".Stack Overflow上有一个关于如何跟踪新创建的远程分支的类似问题.
但是,我的工作流程略有不同.首先,我想创建一个本地分支,当我满意并希望分享我的分支时,我只会将其推送到上游.
更新使用Git 2.0,我在下面写了一个更简单的答案:https://stackoverflow.com/a/27185855/109305
我开始研究一个新功能,经过一段时间的编码,我决定这个功能应该在它自己的分支上.
如何将现有的未提交更改移动到新分支并重置当前更改?
我想重置当前分支,同时保留新功能的现有工作.
我正在开发一个本地git存储库.有两个分支,master和feature_x.
我想推feature_x送到远程仓库,但我不想在master分支上推送更改.
会git push origin feature_x从我的feature_x分支(feature_x分支已经存在远程的)工作?
我不想在我的盒子上测试这个,因为我现在无法推动掌握.
我创建了一个用于测试Solaris和Sun Studio的本地分支.然后我把分支推到了上游.提交更改并尝试推送更改后:
$ git commit blake2.cpp -m "Add workaround for missing _mm_set_epi64x"
[solaris 7ad22ff] Add workaround for missing _mm_set_epi64x
1 file changed, 5 insertions(+)
$ git push
fatal: The current branch solaris has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin solaris
Run Code Online (Sandbox Code Playgroud)
为什么我要为此做一些特别的事情?
是否有任何合理的用例,有人会创建<branch>,推<branch>送到远程,然后声称提交<branch>不应该是<branch>?
我在Stack Overflow上关注了这个问题和答案:将一个新的本地分支推送到远程Git存储库并跟踪它.我猜它是另一个不完整或错误接受答案的例子.或者,它的另一个Git实例执行一项简单的任务并使其变得困难.
这是不同机器上的视图.分支显然存在,因此它被创建并推送:
$ git branch -a
alignas
* master
remotes/origin/HEAD -> origin/master
remotes/origin/alignas
remotes/origin/arm-neon …Run Code Online (Sandbox Code Playgroud) 我没有得到关于Visual Studio的TIT Git的东西.
我在GFS上克隆了一个同事的TFS解决方案并开始添加代码.然后我意识到我需要自己的分支来进行我正在进行的更改,所以按照将新的本地分支推送到远程Git仓库的指示并跟踪它我也跑了
git checkout -b e4ctim
git push -u origin e4ctim
Run Code Online (Sandbox Code Playgroud)
当我对代码进行更改时,visual studio会在代码文件中显示熟悉的红色勾号图标,以确保更改已触发要检出的文件:

然后当我保存文件时,Visual Studio将图标返回到蓝色挂锁.我假设从red-tick到blue挂锁的这种变化表示该更改已在Git中本地签入:

但是当我查看修改过的文件的历史时,没有!

我想在本地提交我的更改并将它们与TFS服务器同步.
Visual Studio根本看不到任何更改:

从命令行我可以看到Git通过运行命令注意到了我的所有修改
git status
Run Code Online (Sandbox Code Playgroud)
并且看到许多更改没有为提交和未跟踪文件暂存.

借用我可以使用的Git书
git add
Run Code Online (Sandbox Code Playgroud)
或者更具体地说
git add -u .
Run Code Online (Sandbox Code Playgroud)
准备好提交文件的阶段,但是我不愿意这样做,因为在Git存储库中开发你的应用程序(跟踪,提交) Visual Studio文档说明:
问:Git舞台在哪里?
答:如果您是经验丰富的Git用户,您可能已经注意到Visual Studio处理的更改与命令提示符不同.您可能想知道"包含的更改"部分是否包含您的暂存更改.实际上,Visual Studio通常会为您绕过Git阶段.提交更改时,Visual Studio会同时进行分段并提交它们.将文件添加到Git存储库时会发生一个例外; Visual Studio确实进行了这种改变.
Visual Studio同时进行阶段和提交更改.但是为什么它没有列出我对跟踪文件所做的任何修改作为更改,从而让我提交它们?
我在GitHub上创建了一个repo,master到目前为止只有一个分支.我的本地工作副本与masterGitHub上的远程/原点完全一致.
我现在想development在GitHub上创建一个分支,以便我团队中的其他人可以开始推动更改development(而不是直接master)并提交PR,请求代码审查等.
所以我尝试development在本地创建一个新分支并推送它:
git checkout -b development
git push origin development:master
Run Code Online (Sandbox Code Playgroud)
但是git只是说Everything up-to-date.所以我问:
如果我是最新的master,我如何创建一个development包含精确副本的远程分支master?
我想知道是否有一种简单的方法来扩展Git命令.
所以我可以创建如下命令:
git my-custom-made-extension --my-options <my-other-arguments>
Run Code Online (Sandbox Code Playgroud)
在一个完美的世界里,我可以用它喜欢的任何语言来完成它,并且我能够相当容易地将我定制的扩展添加到任何开发环境中.
比方说,像Vim 插件的支持?
当我使用本地分支时mybranch,我希望能够origin mybranch使用git pushand和push git pull.正因为如此,我不得不不厌其烦地写出来git push origin mybranch和git pull origin mybranch.如果我尝试使用git pull例如,我得到:
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> mybranch
Run Code Online (Sandbox Code Playgroud)
如果我进入git branch --set-upstream-to=origin/mybranch mybranch,那么它的工作原理.但这几乎和以前的命令一样乏味.我可以让git做这个默认行为吗?我已经看到了类似的问题并且答案倾向于建议更新版本的git这样做,但我使用git版本2.1.3,这是相当新的,所以它不能只是那样.
我正在从主线分支创建的本地分支(feature1)上工作.我想将此本地分支推送到远程存储库.如何使用跟踪选项在git中实现此目的.