最近,由于几次错误的提交,我不得不压缩提交。简单地这样git pull --rebase origin master做对我来说是有效的,但我的队友已经在旧历史之上合并了新历史。所以我想知道是否有可能覆盖本地历史?
假设分支中有三个时间线remoteNew,localOld并且localNew有一个小时前的提交。
追随作品,用新的历史完全覆盖旧的历史。不过这里需要注意的是,oldHistory 在 newHistory 创建后没有新的提交。
git checkout localOld
git pull --rebase origin remoteNew
Run Code Online (Sandbox Code Playgroud)
以下并不如我所愿。它没有覆盖本地历史,而是创建了带有冲突的合并。
git checkout localNew
git pull --rebase origin remoteNew
Run Code Online (Sandbox Code Playgroud)
我相信这种情况发生是因为本地有新的提交。虽然我真正想要的是git push --force类似的结果,但为了拉动。另一种方法是将 master 分支替换为新分支并重命名。还有其他选项可以覆盖本地历史记录吗?
注意:想澄清一下,这是旧的存储库,但团队尚未对其进行处理,我们正处于采用 git 并在整个团队开始处理它之前完成工作流程的初始阶段。
使用以下git命令有什么区别
git pull origin master
git pull origin master:master
一些观察
1)第一个告诉我是否有任何冲突,但另一个简单地说“拒绝-非快进”
2)第二个不会更新我的远程指针,即源/主控,如果它失败
git branch告诉我,我是主人.我写git checkout -b newbranch.
git branch告诉我,我在新创建的分支newbranch.我写了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> newbranch
Run Code Online (Sandbox Code Playgroud)
我想这是因为我无法从我刚刚创建的分支中拉出来.所以我编写git pull origin master并获得了一百万个不同分支master和newbranch的文件(使用我的完整控制台,所以我看不到错误的开头),结果如下:
Please move or remove them before you …Run Code Online (Sandbox Code Playgroud) 我不太喜欢 GIT,我有以下问题。
我的项目中有一些未提交的文件,我已经通过此声明隐藏了这些文件:
git stash
Run Code Online (Sandbox Code Playgroud)
然后我拉取了一个coolegue的工作的存储库,这似乎正确地覆盖了我的隐藏文件的更改。
现在我想在不丢失同事修改的情况下检索特定隐藏文件的内容。
我不想覆盖拉取的版本,而只想访问特定文件的隐藏版本的代码。
执行git stash list我获得:
$ git stash list
stash@{0}: WIP on master: fd2a59b First version of iterate/aggregate for data received from dataservice
stash@{1}: WIP on master: 4910263 DSS project added
Run Code Online (Sandbox Code Playgroud)
我怎样才能从外壳做到这一点?
假设我已经运行了git fetch,现在我想运行git pull,以使我的本地myBranch更新到我的origin\myBranch.
但!!同时,运行后fetch,我的互联网连接断开了:(现在,当我运行时git pull它失败,因为它看不到remote。但我仍然想执行拉取的本地部分。
有没有办法告诉git pull运行而不进行初始操作git fetch?
注意:我可以git reset --hard更新myBranch. 但git pull并不总是这样做。
我想表达问题的另一种方式是“第二个命令满足:git pull= git fetch+ git ???”?
我想一个大文件(如模型)添加到我的Git仓库,以确保它不会丢失在什么地方,但是当其他人打电话git pull,该文件应不拉。
我检查了很多来源,但没有一个能解决我的问题。也试图操纵.gitignore,但仍然没有解决方案。
澄清一下:现在,在一个项目上工作,对于其中的一部分,需要使用一个模型。由于它不再使用,但将来可能会有一些使用它的场景,我需要模型在存储库中(大小:606 MB)。以后需要用到的人,应该可以从存储库中获取。否则,它与项目的主要流程无关,只是与模型相关的一个问题。除了该人将在提到的问题上工作之外,人们不需要使用存储库拉取模型。这就是这个问题的动机。