我最近将子模块“C”添加到我的存储库“B”中,然后检查了子模块 C(我想包含在 B 中的该工具的先前版本)中的特定提交,然后提交 B 并尝试推送。我收到此错误:
$ git push --recurse-submodules=on-demand
Run Code Online (Sandbox Code Playgroud)
...
Everything up-to-date
The following submodule paths contain changes that can
not be found on any remote:
_submodules/C
Please try
git push --recurse-submodules=on-demand
or cd to the path and use
git push
to push them to a remote.
fatal: Aborting.
fatal: The remote end hung up unexpectedly
gitpub error: process git-shell failed with status 128
Run Code Online (Sandbox Code Playgroud)
我应该提到的是,我检出的 C 中的提交是无父/分离的(不知道为什么开发人员选择这样)。当我想在 B 中推送我的提交时,这似乎会导致问题。提到 B 也是超级项目 A 的子模块也可能相关。
感谢您提供的任何见解。
现在有没有办法保留我的所有更改,并且仍然将我的应用程序反向回退到某个提交并开始检查所有其他提交以查看哪个提交导致了我的应用程序中的问题?
我做了很多更改,检查所有内容需要很长时间,所以我想获得我以前的提交,当我发现问题时,我将恢复到最近的提交,然后只应用必要的更改.
这里有一个答案:git revert back to某个提交,但我仍然想保留我最近的所有更改,有人可以引导我完成思考过程吗?
我在想如果我现在提交我最近的更改,它在 bitbucket 中,然后使用方法:git reset --hard {commit numbers}并继续浏览我的提交列表,当我发现问题时,git reset --hard {most recent commit}这会让我回到最近的状态吗?
通常当我在VIM中写完提交消息时,我输入:Wq<ENTER>而不是:wq<ENTER>因为我按住shift键来键入冒号.这会导致VIM响应E492: Not an editor command: Wq.
到目前为止,这一切都很好,我只需重新输入:wq<ENTER>以保存提交消息并退出VIM.但是,提交不起作用,终端显示如下:
$ git commit
$ error: There was a problem with the editor 'vi'.
$ Please supply the message using either -m or -F option.
Run Code Online (Sandbox Code Playgroud)
为什么:Wq<ENTER>在做正确的事情之前意外进入:wq<ENTER>导致提交失败?进入后有没有办法让承诺发生:Wq<ENTER>?
如果我遇到合并错误,我通常会解决合并错误,再次添加我的文件并
git rebase --continue
继续使用拉动和推送.
现在我有时间深入了解git如何工作并想出来,应该可以创建一个新的提交.我认为,这可能是一个好主意,以澄清存在一些合并错误,并且它们是手动解决的.
建议使用哪一个,它们的优点和缺点是什么?提前致谢!
git git-merge git-rebase git-commit merge-conflict-resolution
我曾经通过命令添加了全局提交模板:
git config --global commit.template .gitmessage.txt
Run Code Online (Sandbox Code Playgroud)
今天,我创建了自己的存储库,尝试提交时遇到错误:
致命:无法读取“ .gitmessage.txt”:没有此类文件或目录
很好,因为我没有创建.gitmessage.txt文件。我没有此仓库的模板。问题来了:如何撤消全局提交模板?我可以覆盖全局提交模板,但可以删除此配置。
我正在尝试:
git config --global commit.template ""
Run Code Online (Sandbox Code Playgroud)
但是我得到了类似的错误:
致命:无法读取'''':没有这样的文件或目录
当我运行命令
git config --global commit.template
Run Code Online (Sandbox Code Playgroud)
我得到了回声当前模板。有人可以帮助我吗?
我正在尝试更改先前提交的提交消息。我正在尝试使用git rebase --interactive <commit>
一旦我在 VIM 窗口中找到我要查找的提交,当我使用箭头键定位提交的 sha1 时,删除该单词pick并开始键入“reword”或“edit”,仅打印一些字符,然后cursor 将跳转到提交消息的不同部分。
我究竟做错了什么?
如何在合并分支时找出是否存在冲突,以及该人为解决这些冲突而必须做些什么?
git log -p 似乎显示所有合并提交的空差异,无论它们是否有手动更改.
我正在处理一个项目,我需要知道何时将提交确切地推送到 Github 上的远程存储库。使用 git API 和命令,我只能找到提交的 ' authored_date' 和 ' committed_date',它们表示在本地存储库中提交的时间。
我尝试了这个问题中提出的方法:是否有办法在 git 中获取给定提交的推送日期?. 它们仅在从同一台本地机器推送提交时工作,而我需要它们用于克隆项目中的提交。
谢谢你。
我有一个我在本地开发的 Python 网络服务器(使用 Bottle 或 Flask 或任何其他):
BUILDVERSION = "0.0.128"
@route('/')
def homepage():
... # using a template, and the homepage shows the BUILDVERSION in the footer
# so that I always know which live version is running
...
run(host='0.0.0.0', port=8080)
Run Code Online (Sandbox Code Playgroud)
每次我有重大更新时,我都会:
git commit -am "Commit name" && git push
Run Code Online (Sandbox Code Playgroud)
并且更新了远程版本。(注意:我git config receive.denyCurrentBranch updateInstead在远程仓库上使用)。
问题:我经常忘记BUILDVERSION在每次提交时手动增加,然后就不容易区分哪个版本正在运行等(因为连续两次提交可能具有相同的BUILDVERSION!)
问题:有没有办法BUILDVERSION使用 Python + Git 在每次提交时自动递增?或任何类似的(BUILDVERSION 也可以是提交 ID...),它们将以小字符出现在网站的页脚中,允许区分 Python 代码的连续版本。
刚开始从在线 Microsoft 课程中编写代码。当我说刚刚开始时,我的意思是一开始。所以他们有一个教程可以在 github 上创建一个远程 git,在本地克隆它,添加一个 README.md 文件,然后在本地保存和提交,然后远程推送。已经逐字逐句地跟踪了几次,但是当我每次都说“Git:无法执行 git”时,我要提交分阶段的更改。这都是使用 Visual Studio 代码和 git。如果有帮助,我可以发布 git 日志中让我打开的内容吗?不知道从哪里开始,也不知道如何解决这个问题。希望有人可以提供帮助。 就在我按下提交之后
git-commit ×10
git ×9
github ×3
commit ×2
bitbucket ×1
git-config ×1
git-merge ×1
git-rebase ×1
merge ×1
push ×1
python ×1
rebase ×1
timestamp ×1
vim ×1