我在提交消息中写了错误的东西.或者,我忘了包含一些文件.
如何更改提交消息/文件?提交尚未被推送.
我已经设置了一个远程非裸"主"仓库并将其克隆到我的电脑上.我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程仓库.到目前为止,情况还不错.
现在,我不得不改变远程仓库中的东西.然后我在当地的回购中改变了一些东西.我意识到不需要改变远程仓库.所以我尝试git push从我的本地仓库到我的远程仓库,但我收到的错误如下:
为防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关
git push --help详细信息,请参阅"关于快进的注意事项"部分.
我以为那可能是一个
git push --force
Run Code Online (Sandbox Code Playgroud)
将强制我的本地副本将更改推送到远程副本并使其相同.它确实强制更新,但当我回到远程仓库并进行提交时,我注意到文件包含过时的更改(主远程仓库以前有过).
[我]尝试强制,但当回到主服务器保存更改时,我得到过时的暂存.因此,当我提交存储库时不一样.当我再次尝试使用git push时,我得到了同样的错误.
我该如何解决这个问题?
当我使用我的源代码工作时,我做了我惯常的事情提交,然后我推送到远程存储库.但后来我注意到我忘了在源代码中组织我的导入.所以我做了修改命令来替换以前的提交:
> git commit --amend
Run Code Online (Sandbox Code Playgroud)
不幸的是,提交不能被推回到存储库.这被拒绝了:
> git push origin
To //my.remote.repo.com/stuff.git/
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '//my.remote.repo.com/stuff.git/'
Run Code Online (Sandbox Code Playgroud)
我该怎么办?(我可以访问远程存储库.)
我只是压缩了一些提交git rebase并做了一个git push --force(这是邪恶的,我知道).
现在其他软件工程师有不同的历史,当他们这样做时git pull,Git会合并.有没有办法解决这个问题,除了做一个rm my-repo; git clone git@example.org:my-repo.git?
我需要与之相反的东西git push --force,但git pull --force没有给出预期的结果.
为什么Git使用加密哈希函数SHA-1而不是更快的非加密哈希函数?
相关问题:
Stack Overflow问题为什么Git使用SHA-1作为版本号?问为什么Git使用SHA-1而不是序列号进行提交.
我用了
git reset --hard dc082bc...由于一些错误的提交,恢复到分支回到所需的先前状态.这让我当地的分公司很好.但是,我想将'origin'上的分支回滚到同一个commit,以便我可以重新开始.谁能告诉我如何将原始分支(非主人)恢复到此提交?
我已经尝试过git push origin master,但它给出了以下错误
! [rejected] branch -> branch (non-fast-forward) error: failed to push some refs to 'git@github.com:xxx/xxx.git' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes before pushing again. See the 'Note about fast-forwards' section of 'git push --help' for details.
我现在已经多次听到过这种情况,Git提供了数据完整性.但是,这是什么意思?
我知道git中的所有对象都是使用SHA-1校验和访问的,并且该校验和是根据文件的内容计算的.这意味着如果文件有更改,您将获得不同的校验和.
但是,它如何提供数据完整性?如果我查找一些基于校验和(密钥)的数据,如果找不到它(如果它已经以某种方式被破坏)将git返回错误.我假设使用git时数据仍然会被破坏 - 磁盘读取错误等.
不要在这里真正看到与SVN的区别,或者在Git中实际上是如何提供数据完整性的.
git push --force-with-lease origin +somebranch在当前的 Git 上, ,git push --force-with-lease origin somebranch和git push origin +somebranch(没有加号)之间有实质性区别吗?三个人似乎都在做同样的事情。
我试图寻找文档。我尝试查看文档中的refspec ,但我不知道是否存在差异,如果有的话,例如,当我想通过 拉到工作分支时git pull --rebase origin master,默认情况下应该更喜欢哪个。