【发布时间】:2022-01-11 09:33:45
【问题描述】:
我有两个本地分支,main 和 dev。当我尝试从 dev 提交更改并将其推送到 main 时,它说一切都是最新的,实际上什么也没发生。此外,我的 github repo 并没有反映我本地 repo 中的最新更改,即使我尝试将它推上去并且它说它是成功的。提交未显示在我的新仓库中。
当我输入“git remote show origin”时,输出如下:
$ git remote show origin
* remote origin
Fetch URL: <myRepo'sURL>
Push URL: <myRepo'sURL>
HEAD branch: main
Remote branches:
dev tracked
main tracked
Local branch configured for 'git pull':
main merges with remote main
Local refs configured for 'git push':
dev pushes to dev (fast-forwardable)
main pushes to main (up to date)
我对 git 很陌生,所以边走边学。有人知道我为什么会遇到这个问题吗?如果需要,我可以运行其他命令来提供更多信息
要推送更改,这是我遵循的过程:
首先,git 状态。输出是这样的:
On branch dev
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: __pycache__/app.cpython-39.pyc
modified: app.py
no changes added to commit (use "git add" and/or "git commit -a")
然后,我运行“git add”。此命令没有输出。
接下来,"git commit -m "test"。这是输出:
$ git commit -m "test"
[dev 5af52ce] test
2 files changed, 4 insertions(+), 8 deletions(-)
最后,“git push origin main”。这是输出:
$ git push origin dev
Enumerating objects: 20, done.
Counting objects: 100% (20/20), done.
Delta compression using up to 16 threads
Compressing objects: 100% (14/14), done.
Writing objects: 100% (16/16), 1.77 KiB | 1.77 MiB/s, done.
Total 16 (delta 10), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (10/10), completed with 3 local objects.
To <myRepo'sURL>
0f1504d..5af52ce dev -> dev
谢谢!
【问题讨论】:
-
我们需要更多细节。 “我尝试提交和推动更改”是什么意思?你做了什么确切的命令?这些命令的结果是什么?您可以使用
git status、git log和git diff等命令检查每个提交是否包含您期望的更改。使用git help <command>了解有关如何使用这些命令的更多详细信息。 -
根据此处显示的输出,命令
git push origin dev可能会将您在dev上的新提交发送到 Git 存储库中尚不存在的新提交到 Git在 GitHub 上的存储库。 (您的dev可能与您的main相同,而 GitHubdev就在后面;我们无法从您在此处显示的内容中判断出来。) -
感谢您的反馈。我刚刚添加了更多信息。刚才检查了 github 之后,似乎我可以直接从本地 dev 分支推送到 github 上的 dev 分支,完全绕过“主”分支。我猜我的分支层次结构搞砸了,但我不确定如何检查/修复它
-
“完全绕过主分支”,但这就是 git 的工作方式......也许这只是对 git 实际工作方式的一些困惑?你能详细说明这里的问题是什么吗?我的意思是您可能会看到一些您不同意的状态消息,您能否发布该确切状态消息(或其他观察结果),解释您不同意的原因以及您期望它显示的内容? `到目前为止,您问题中的所有命令和输出似乎都表明没有问题,但显然您有一个问题,因为您提出了问题。
-
我怀疑这里的部分困惑来自您在 GitHub 上看到的内容。默认情况下,GitHub 会显示
main分支的目录结构。您可以选择dev分支来查看其内容。您还可以将默认分支设置为您想要的任何分支。