我的本地存储库包含所有提交。最近,有人清除了远程存储库中的所有代码并提交了。现在,我想将本地代码推送到存储库中。
当我试图推送(git推送原始母版)时,我得到了错误。
(non-fast-forward)
error: failed to push some refs to 'https://myurl.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote change
我做了一些修改,然后运行以下命令 git add . git commit -m'my message' 在那之后,我运行了git push,显然,推送成功了。 所以我跑了 git status 我得到了以下状态 On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean 所以我再次运行git
使用git status --porcelain <file>,我可以检查一个文件是否被修改、删除、添加、.
如果文件是在本地修改和提交的,则git status --porcelain <file>不返回任何值。
使用git status <file>,我知道整个回购都是x提交,但这是整个回购,而不仅仅是一个文件。
如果一个文件已提交但未被推送,我如何检查它。
我无意中将更改推送到我的Dev分支,而我现在想要摆脱这些更改。不是恢复而是完全删除它们。由于设置为Dev分支的约束,我不能直接提交到该分支,而是通过拉请求提交。以下是我的步骤:我创建了一个基于Dev的新分支,名为Dev_Reset。然后:
git reset 4db52f3 --hard
HEAD is now at 4db52f3 last_changes_to_keep
git push origin -f
然后将Dev_Reset分支推送到远程回购。但是,当我创建一个拉请求时,没有需要合并的差异,因为它说Dev_Reset和Dev之间没有区别。如果我查看Visual中分支的历史,我会
我在用bitbucket和GIT。我犯了一个错误,我把一些代码提交给了主分支,我以为我是在开发分支。为了还原,我做了"git重置--硬头~1“,然后做了"git推送-强制”,这删除了提交,并使主犯恢复到以前的提交--我认为一切都很好。现在我想把我的本地更改推到dev分支,所以我做了"git签出dev"然后点击"git状态“
Your branch is up to date with 'origin/Dev'.
nothing to commit, working tree clean
我仍然看到我的地方所有的变化,那么为什么git说没有
这很好地解释了挤压多个提交的原因:
但它不适用于已经被推送的提交。如何在本地和远程repos中压缩最近的几个提交?
当我执行git rebase -i origin/master~4 master时,将第一个设置为pick,将其他三个设置为squash,然后退出(通过emacs中的c-x c-c ),我得到:
$ git rebase -i origin/master~4 master
# Not currently on any branch.
nothing to commit (working directory clean)
Could not apply 2f40e2c... R
从这里,它说
This undo’s your commit and also resets your working tree to the last commit.
1 git reset --hard HEAD^
但是,在我做了一个“git推送”之后,我怎么才能撤销我的最后一次提交呢?
谢谢。
当我做'git log‘时,我得到的是我的最高提交数
commit 29fc764693a5933a379169e22891e4b0d3d2426f
Merge: 002db49 cfb1d8f
我怎么才能“git还原”这个改变呢?
我明白了
$ git revert HEAD
fat