我在我的主分支上从HEAD恢复了3次提交,并对旧的提交进行了一些更改。
然后,当我键入git status时,系统会告诉我Your branch is behind by 3 commits, and can be fast-forwarded.
我想基于这个旧的提交创建一个新的分支,并将我所做的更改推送到这个新的分支中。
用Git能做到吗??
我是格瑞特的新手,我想我迷失了方向,看不到一些可能非常明显的东西。
在git status之后,我得到:
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
# (use "git push" to publish your local commits)
所以,我是按照指示做的,在git push origin HEAD:refs/for/master之后,我得到:
remote: Processing changes: refs: 1, done
To ssh:
今天,我已经使用git commit -a提交到本地存储库,并输入了提交消息。一切都很好。
最后,我想用一行提交来提交一个小的更改,所以我使用了git commit -m "some message"并得到了以下内容:
On branch ChartFeature
Your branch is ahead of 'origin/ChartFeature' by 2 commits.
(use "git push" to publish your local commits)
Changes not staged for commit:
我说“分支”是因为我指的是数据结构中的分支,图形拓扑意义上的分支,而不是git分支,它类似于一个特定提交的句柄。
我在master上,我创建了一个新的分支,它是我在编辑之前的提交时创建的:(字母顺序=时间顺序,基本上我发现这个bug是在提交C中首次引入的)
A -- B -- C -- D <-- master
\
E <-- bugfix_branch
我在master分支上,我查看了gitk中的小树形图,它没有显示我提交E。类似地,如果我签出bugfix_branch分支并查看那里,它在列表中只显示提交A、B和E(所以我看不到C或D)。
我想查看我的整
我们使用git通过GitLab进行源代码控制。问题是,我创建了一个新的分支,在我创建该分支的存储库中没有未提交的文件,并且它显示了修改后的文件夹,而不是文件,如下所示。
# On branch 114531
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working direc
我在branchX上。我在我的工作目录中做了一些修改。它们都反映在“未为提交而进行的更改”中。现在我做git checkout branchY。有时,我会将这些更改移到branchY的“未分阶段提交的更改”中,例如:
M <some file1 path>
M <some file2 path>
有时git会给我这样的信息- Please commit your changes or stash them before you switch branches.
git如何决定何时反映更改以及何时中止?如果我签出一个分支而不提交,那么git不应该将一个分支的“未分阶段提交
几天前,我克隆了一个存储库,为了运行cod,我需要修改类路径。今天我被告知要拉X分支,这是我用git pull做的。
现在,当我执行git checkout X时,我会收到对类路径文件的警告
Stash or commit it to prevent local changes from being overwritten.
为了重新创建此警告,我在其他项目中尝试了两种方案。
第一种情况
在一个git回购中。对文件进行更改,而不提交它。然后创建一个新分支并对其进行结帐。在这种情况下,它不会抛出此警告。
第二种情况
在另一个回购中,
提交一个新文件。
创建一个分支,签出到该分支并对该文件
我很乐意为这个问题写一个更精确的题目,但我现在不能更好地表达它。
基本上,假设你有一个回购,在那里你有几个分支,比如“主人”和“我的分支”。
那么,让我们假设你是在主人:
$ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
然后在这里执行git pull;为master分支和mybranch检索新提交。因为您已经在分支master中,所以master的头由git自动更新到最近收到的提交。
现在,假设
我已经向git responsitory提交了几个变更集并向上推送。
我可以在remote responsitory中看到我的变更集,但在我克隆新的存储库之后。
我在几个文件上看不到最新的更改。我只有一个分支。
$ git branch
* master
$ git log
showing all the logs in the right way
$ git log <filename1> #look at certain file <p>
It does not show the newest change on that file
$ git log --f