使用git时,能够获取而不必合并/重新定位的优势是什么?从这个答案,我看到了
如果您需要使您的存储库保持最新,但是在更新文件时正在处理可能会中断的内容,这将非常有用.
经常提取是否真的使未来的合并不那么复杂或不太可能发生冲突?
我正在本地分支上工作(让我们称之为bugFix123),我通常使用以下命令序列来推送更改,
1. git add to add files
2. git commit -m 'description' (there could be multiple sequence of 1 and 2, suppose I have multiple commits for multiple changes, and using one single push in the final)
3. git push origin bugFix123
Run Code Online (Sandbox Code Playgroud)
这是一个新问题,假设我commit多次进行多个本地更改,在执行 command 之前git push origin bugFix123,如何查看最终要推送的文件是什么?我尝试使用 command git commit,似乎git commit没有显示要推送的正确文件列表(如果有多个提交,则在推送之前)。我想看到在多次提交场景中推送的最终文件列表是因为我不想推送不必要的文件并进一步修复它们(它会向其他人发送不正确的推送列表文件通知)。
编辑 1 ,
我发现git push -n并不总是工作,
git push -n
To git@github.com:foo/goo.git
! [rejected] master -> master (non-fast-forward) …Run Code Online (Sandbox Code Playgroud) 你能解释一下 git clone、git pull 和 git fetch 之间的区别吗?我读过其他一些答案,但没有一个清楚地说明三者之间的区别。
我是Git的全新手,不确定发生了什么.我的伙伴和我正在一起开展一个项目.
我从远程服务器获取所有文件git fetch,所以我现在有一大堆文件.
我编辑其中一些,他编辑了其中一些,等等.
我每天都在做取件,他开始告诉我他已经修改了一些文件并更新了它们,但这些改变并没有出现在我的最后.
我在Windows中打开Git GUI,在左侧有两个面板.
一个人说Unstaged Changes- 我这意味着这些是我改变的东西,除非我add这些,否则不会更新到本地存储库.
另一个人说Staged Changes (Will Commit).在这个窗口里面,当我点击一些文件时,我确实看到了我的朋友所做的更新,这些更新没有显示在我正在编辑的文件中,我想我也看到了我所做的更改.
我git add .在我的目录中添加了所有文件
我按下commitGit GUI中的按钮,现在两个侧面板中没有任何文件,no Unstaged Changes和no Staged Changes (Will Commit).
我检查了所有文件,看起来我和我朋友的结尾的变化都已合并到一个文件中.
我仍然不能100%确定发生了什么.
问题1:我做对了吗?
问题2:究竟做了merge什么?
因为我不断合并git merge origin/master并且合并似乎并不是一件可恶的事情.我认为commit只是将当前版本的记录写入一些哈希码,但似乎commit实际上正在按照我的想法merge做 - 它正在合并变化.
抱歉这个冗长的问题,只是很困惑.
我知道之间的区别git pull和git fetch.
但我想知道,哪一个是优先考虑的?
因为git pull在我不知情的情况下自动合并.这就是我发现的不同.git fetch不会这样做.还有别的事吗?
问题也可能是"为什么在git pull存在时使用git fetch?".
执行a的原因git fetch可能是您希望在运行之前查看fetch命令的日志以了解您将要合并的内容git merge.
git fetch那么git merge作为经典的工作流程,git fetch如果你以前没有运行过这个命令,你还有其他常见的东西吗?
我是 Git 新手,git pull origin <my-branch>大部分时间都使用从远程存储库获取更改。
然而,随着我获得一些经验,我发现这git fetch是更受欢迎的,但阅读几个主题,例如“git pull”和“git fetch”之间有什么区别?和Git:获取并合并,don\xe2\x80\x99t pull,现在我很困惑,如果有充分的理由喜欢它,除了在获取更改之前检查更改之外,需要澄清。
\n\n这背后的总体思想
\ngit pull是git fetch+git merge,当然还有一些缺点等等。
那么,您能否向我澄清一下:
\n1.我应该如何从远程更新我的本地分支?
\n2.据我所知,git pull origin <my-branch>和之间的区别git pull origin,后者从 origin 获取除 之外的所有分支<my-branch>。真的吗?我应该更喜欢哪一个?
如何从远程存储库中仅提取未更改的文件并保留本地更改,而不进行任何合并?
有人提出了这个顺序:
git stash
git pull
git stash pop
Run Code Online (Sandbox Code Playgroud)
然而,有一个明显的缺点:最后一个命令可能存在冲突,我需要做一些事情来解决它们(就像我有大量冲突的文件,这可能会让人感到麻烦).
在TFS中,我只是做了"获取最新版本",没有大惊小怪.这里有类似的东西吗?
“git merge”和“git fetch”有什么区别?我对这两个命令有一些问题。我不知道什么时候应该使用其中一种。
git pull 是指 git fetch 然后是 git merge。但是,具体来说,为什么有人会在不先进行 fetch 的情况下进行 git merge 呢?即为什么可以将一个看似单一的操作分成两个子操作?