我理解运行的想法git fetch <remote>,因为远程分支可以通过git checkout <remote>/<branch>.
但是如果我只是运行它是如何工作的
git fetch path/to/other/repo
Run Code Online (Sandbox Code Playgroud)
如何结账对应的分行?请注意,该操作以静默方式运行(即使使用--verbose),并且不会创建新分支。
编辑:只是要清楚:我完全理解 git 如何与遥控器一起工作。我只是对这种替代语法感到好奇git fetch path/to/remote,或者git fetch <url>. 它应该如何工作?为什么它不创建新分支?为什么即使在详细模式下它也会静默运行?预期用途是什么?
我正在开发一个系统,我正在跟踪另一个项目的路径,添加我自己的东西,但不是直接添加到原始项目.我用三个远程分支设置我的存储库:
我的工作流程理念是自动进行同步(因为它基本上是各种快速的),并且集成是半手动的(因为它需要合并和修复).我已经介绍了第一部分(同步),但我无法弄清楚将Master和Vendor集成到集成中的实际问题.
这是git branch -a的输出:
* integration
master
vendor
remotes/origin/HEAD -> origin/master
remotes/origin/integration
remotes/origin/master
remotes/origin/vendor
Run Code Online (Sandbox Code Playgroud)
我如何从这一点前进到:
显然,如果我在工作流程中出现问题,我很乐意听到它.
如果我有一个版本控制的主项目.
然后我为第三方插件添加了一个遥控器
git remote add myplugin <url>
那我可以做 git pull myplugin master
它只是从那个遥控器中拉出变化.
现在让我说我的项目设置为:
/
/index.php
/whatever
Run Code Online (Sandbox Code Playgroud)
并将遥控器设置为
/
/whatever.php
Run Code Online (Sandbox Code Playgroud)
当我拉入遥控器时,我最终会
/index.php
/whatever
/myplugin
/myplugin/whatever.php
Run Code Online (Sandbox Code Playgroud)
这很好.
我想知道的是,如果我对myplugin进行更改,
如果我发出git push myplugin master什么推?
它只会推动myplugin的变化吗?或远程作为第二个存储库并将提交整个存储库?
有时,当结果 a 生成自动合并时,我的合作者会“恐慌” git-pull,并且只接受默认提交消息。在此提交被推送之前,我想确保消息得到修复,但--amend似乎不起作用。修复在这种情况下生成的消息的最佳方法是什么。我能为他们提出的最好的说明是
git reset --soft HEAD~
git merge -m <message> <the tracked remote branch>
Run Code Online (Sandbox Code Playgroud)
但这似乎有点可怕 ( reset) 并且容易出错(必须明确输入远程跟踪分支)。
是否有一种简单的方法可以更改刚刚通过与远程跟踪存储库合并生成的提交消息?为什么不起作用--amend?
我想develop/user1/issue1在远程存储库上创建一个create git分支,我该如何创建它?
- master => /origin/master
- develop => /origin/develop
- user1 => /origin/develop/user1
- issue1 => /origin/develop/user1/issue1
- issue2 => /origin/develop/user1/issue2
- issue3 => /origin/develop/user1/issue3
- user2 => /origin/develop/user2
- issue4 => /origin/develop/user1/issue4
- issue5 => /origin/develop/user1/issue5
Run Code Online (Sandbox Code Playgroud) 我是Git的新手,我将开始为现有的Web应用程序开发新模块.此应用程序目前托管在Web服务器上,我想使用Git作为版本控制工具.我创建了一个新的裸存储库,git init --bare newdev.git但我不知道如何添加已经在服务器上的文件.
谢谢.
我有2个遥控器 - origin和remote2 one,我想将remote2重命名为origin和origin来源.这样做是否安全?如果是,我该怎么办?
编辑:安全我的意思是,如果从"原点"跟踪某个分支,它将在重命名后继续从"源"跟踪.我也希望我新的还有什么可能会出错:)
如何编辑我的.git/config文件?
显然,我的heroku遥控器设置的不是heroku; 因此,我无法在 Heroku 上正确部署我的 Rails 应用程序。但是,我找不到如何编辑它以将其设置为正确的内容。
我在哪里可以找到配置文件?我在我的存储库或我的 Git 文件夹安装中找不到以这种方式命名的文件。我应该在哪里搜索它,我可以编辑它吗?
$ git remote -v
heroku https://git.heroku.com/pure-plateau-4958.git (fetch)
heroku https://git.heroku.com/pure-plateau-4958.git (push)
origin git@github.com:vike27/sciencevest100.git (fetch)
origin git@github.com:vike27/sciencevest100.git (push)
Run Code Online (Sandbox Code Playgroud)
但是 heroku open 不起作用,heroku 支持说这是因为我的 .git/config 文件中先前提到的错误
我在 Windows8
我正在尝试为具有本地版本,登台版本和生产版本的Wordpress安装设置“简单” git工作流。我要做的就是在本地进行更改,然后从本地推送到暂存,从本地推送到生产。起初,我认为这将是一个简单的任务。我已经能够初始化存储库,添加两个远程“ staging”和“ production”,在远程控制器上初始化git,并通常使用以下命令将更改从本地版本推送到暂存和生产服务器:
git add .
git commit -m "some changes"
git push staging master
git push production master
Run Code Online (Sandbox Code Playgroud)
但是,在工作期间的某些时候,发生了一些变化,尽管我仍然可以推送到暂存,但是现在我无法在没有出现错误的情况下推送到生产服务器:
! [remote rejected] master -> master (Working directory has unstaged changes)
Run Code Online (Sandbox Code Playgroud)
当我执行“ git status”时,它说:
On branch master
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)
在阅读了关于堆栈溢出的几个相似但不同的问题的答案之后,我尝试了以下方法:
git pull staging master
git pull staging master --rebase
git pull production master
git pull production master --rebase
Run Code Online (Sandbox Code Playgroud)
我也尝试在远程服务器上执行此命令
git config --local receive.denyCurrentBranch updateInstead
Run Code Online (Sandbox Code Playgroud)
我已经完全重新创建了几次服务器和存储库,只是为了完全从头开始重新安装git,但是此问题在一段时间后仍会继续发生,此时,Git实际上正在浪费我的工作流程而不是提供帮助。如果有人对我的错误有任何了解,将不胜感激!
我有一个dev它已经与分支合并的分支featureA和featureB。我将该dev分支合并到master并推到远程。后来我确定由于提交错误featureB而尚未准备好与之合并master。所以我恢复了dev->的合并 master。
git revert -m 1 <merge-commit-hash>
Run Code Online (Sandbox Code Playgroud)
然后我试图合并featureA到master。但是我不能合并。它会说Already up to date。
我知道莱纳斯·托瓦尔兹(Linus Torvalds)所说的原因,
Linus解释了这种情况:
恢复常规提交只会有效地撤消该提交所做的操作,并且非常简单。但是,还原合并提交也会撤消提交更改的数据,但是对合并所产生的历史记录的影响绝对没有任何作用。
因此,合并仍将存在,并且仍将其视为将两个分支结合在一起,并且将来的合并将把合并视为最后一个共享状态-还原引入的合并的还原将完全不影响此状态。
因此,通过“还原”撤销数据的变化,但是这是非常没有在这个意义上,它不会取消的影响对信息库历史提交的“撤销”。
因此,如果您将“还原”视为“撤消”,那么您将总是会错过这部分还原。是的,它撤消数据,但是不,它不会撤消历史记录。
在这种情况下,只有将其dev再次合并的解决方案master是revert the revert commit。但是我只想合并分支中包含的一个dev分支,即featureA
如何将分支(featureA)合并到master包含在还原的合并分支(dev)中的主线分支()?
git ×10
git-remote ×10
git-merge ×2
git-push ×2
git-add ×1
git-branch ×1
git-fetch ×1
git-pull ×1
git-reset ×1
git-revert ×1
gitlab ×1
heroku ×1
windows ×1
wordpress ×1