大家好,
我的仓库有一个有点奇怪的问题。最初,我只有 master 分支要提交,但是在完成应用程序的功能版本后,我决定创建一个 develop 分支来继续开发,但保留工作版本在 master 中保持不变,直到我想要 merge 它。
目前(使用 gitk --all
)我的 git 日志图如下所示:
tag | *----*-----*-----*-----*------*------*------* master & develop \ \ --------*----* develop (HEAD)
I am unsure as to what I did to cause this, below are the steps I took to creating the develop branch:
$ git checkout develop
$ vim example.txt
$ git add .
$ git commit -m "first file in develop"
$ git push origin develop
此后,我继续使用开发分支,直到我查看了 gitk。
我想要的(并且认为是使用 git 分支的正确/健康方式)是:
tag | *----*-----*-----*-----*-----*-----* master \ *-----*-----* develop (HEAD)
What do I need to do to get my repo to look similar to the diagram above?
EDIT #1:
Output from git reflog
for develop:
54d8daf HEAD@{0}: reset: moving to HEAD@{15}
45dcaa7 HEAD@{1}: rebase finished: returning to refs/heads/develop
45dcaa7 HEAD@{2}: rebase: added another sanity check for cli parameters
f3b0f8b HEAD@{3}: rebase: I am working on getting the console improved, this including better color, and more cammand options
8c48bab HEAD@{4}: checkout: moving from develop to 8c48babb10ec2f8f28f364ce57b5095cb080c133^0
54d8daf HEAD@{5}: checkout: moving from master to develop
8c48bab HEAD@{6}: checkout: moving from develop to master
54d8daf HEAD@{7}: rebase: aborting
3bf3f64 HEAD@{8}: commit: rebase
6aa82d8 HEAD@{9}: rebase: added another sanity check for cli parameters
a9be651 HEAD@{10}: rebase: I am working on getting the console improved, this including better color, and more cammand options
8c48bab HEAD@{11}: checkout: moving from develop to 8c48babb10ec2f8f28f364ce57b5095cb080c133^0
54d8daf HEAD@{12}: rebase: aborting
7890b76 HEAD@{13}: rebase: added another sanity check for cli parameters
46847d7 HEAD@{14}: rebase: I am working on getting the console improved, this including better color, and more cammand options
8c48bab HEAD@{15}: checkout: moving from develop to 8c48babb10ec2f8f28f364ce57b5095cb080c133^0
54d8daf HEAD@{16}: commit: changed the how function, it seems I was right, wc counts all lines regardless of readable symbols or not.
13d35ed HEAD@{17}: commit: am working on the how function (should be trivial, but I have a bad feeling)
852fb68 HEAD@{18}: commit: I have added some more commands (thought not fully implemented), but more specifically I have changed the pattern matching
33dfc9f HEAD@{19}: commit (merge): change some output settings, asthetics and such. I am working on getting more command options for list previous lin
a248465 HEAD@{20}: commit (amend): added another sanity check for cli parameters
f0ca508 HEAD@{21}: commit (amend): added another sanity check for cli parameters
9e24e91 HEAD@{22}: commit: added another sanity check for cli parameters
0194cab HEAD@{23}: commit: I am working on getting the console improved, this including better color, and more cammand options
8c48bab HEAD@{24}: checkout: moving from master to testing
8c48bab HEAD@{25}: commit: I think I have wroked out all of the import bugs, the rest is really just esthetics, welcome version 1
b306d9f HEAD@{26}: commit: as it turns out it was easier then I thought, plus I fixed an incorrect append method
8445a25 HEAD@{27}: commit: seems I miss understood how bash case statments handles regex, or should I say pathname expansion matching
9fc5132 HEAD@{28}: commit: lol, totally forgot to use the function 'run' to get things going
ee2a2c7 HEAD@{29}: commit: seems I haven't yet figured out how to correctly parse cli args...
bb0fd28 HEAD@{30}: commit: fixed incorrect sanity check
eb3db1d HEAD@{31}: commit: have reached a stage I could refer to a working test system, which is what I am going to do.
4bfd53b HEAD@{32}: commit: added a lot more colours (am using a list from arch-wikis), incorporated much better error handling
2d9b598 HEAD@{33}: commit: getting there part 1
0edfcae HEAD@{34}: commit: output functions so far
06130a7 HEAD@{35}: commit: modularized two printing function into a seperate script
e0033b8 HEAD@{36}: commit (initial): used some functions from previous bash script, maybe I should create a generic script for text output...?
错误地,我尝试进行 rebase ,但每次 merge 尝试都失败了。在不同的文件 checkout (--theirs
和 --ours
)上使用 git diff
显示远程和本地之间没有差异。因此,我将 head 重置回提交 HEAD@{15}
。
编辑#2: 对于我可能造成的困惑,我深表歉意,但是在图 1 中,“master &development”表示两个分支(master 和 develop)被组合成一个“溪流'。我希望这更有意义。
编辑#3:
来自 git log master --pretty=oneline
的输出
8c48babb10ec2f8f28f364ce57b5095cb080c133 I think I have wroked out all of the import bugs, the rest is really just esthetics, welcome version 1
b306d9f58c3ebab03364c4381754bc87db9e7f2d as it turns out it was easier then I thought, plus I fixed an incorrect append method
8445a258fc388eba5b920de57b1f390623da87a0 seems I miss understood how bash case statments handles regex, or should I say pathname expansion matching
9fc5132c30bdf2ab143ad046493326ba63e4300d lol, totally forgot to use the function 'run' to get things going
ee2a2c7ff69498a80e9fc5f36cc340f6e1b95bcb seems I haven't yet figured out how to correctly parse cli args...
bb0fd28c89a0c16c379774b7fc5768a4160d6852 fixed incorrect sanity check
eb3db1d055b45793fb9a3fd5f884926687f7b8dd have reached a stage I could refer to a working test system, which is what I am going to do.
4bfd53b3af85d82aea11871a0ddb7f9d583cfb73 added a lot more colours (am using a list from arch-wikis), incorporated much better error handling
2d9b598d77e2b62611dfd2e42b183d0262880014 getting there part 1
0edfcae88e6eae66de4fae1788433d83b90a1c37 output functions so far
06130a7288ce26b4a2235864f7cd5b48a35dcea6 modularized two printing function into a seperate script
e0033b8f440f2ffb7b9a120f5a9be9ea167e1e30 used some functions from previous bash script, maybe I should create a generic script for text output...?
git logdevelop --pretty=oneline
的输出
54d8daf475a5e1108cd6345850245db2d0e6fd80 changed the how function, it seems I was right, wc counts all lines regardless of readable symbols or not.
13d35ed979de3518eca26961f3be4bb0b7d8de03 am working on the how function (should be trivial, but I have a bad feeling)
852fb68b8ca929e1156e38e2a58a12f07bd9aaa5 I have added some more commands (thought not fully implemented), but more specifically I have changed the pat
33dfc9f187a54dc7234c9ca31bee91eef7c89a98 change some output settings, asthetics and such. I am working on getting more command options for list previo
a2484654eff741f4c625f8cb097fbb92f6ac8b9b added another sanity check for cli parameters
9e24e9157157f128f75b3d7859875d06d33137bd added another sanity check for cli parameters
0194cab8af66656bb9fe83c919409354f6d12edc I am working on getting the console improved, this including better color, and more cammand options
8c48babb10ec2f8f28f364ce57b5095cb080c133 I think I have wroked out all of the import bugs, the rest is really just esthetics, welcome version 1
b306d9f58c3ebab03364c4381754bc87db9e7f2d as it turns out it was easier then I thought, plus I fixed an incorrect append method
8445a258fc388eba5b920de57b1f390623da87a0 seems I miss understood how bash case statments handles regex, or should I say pathname expansion matching
9fc5132c30bdf2ab143ad046493326ba63e4300d lol, totally forgot to use the function 'run' to get things going
ee2a2c7ff69498a80e9fc5f36cc340f6e1b95bcb seems I haven't yet figured out how to correctly parse cli args...
bb0fd28c89a0c16c379774b7fc5768a4160d6852 fixed incorrect sanity check
eb3db1d055b45793fb9a3fd5f884926687f7b8dd have reached a stage I could refer to a working test system, which is what I am going to do.
4bfd53b3af85d82aea11871a0ddb7f9d583cfb73 added a lot more colours (am using a list from arch-wikis), incorporated much better error handling
2d9b598d77e2b62611dfd2e42b183d0262880014 getting there part 1
0edfcae88e6eae66de4fae1788433d83b90a1c37 output functions so far
06130a7288ce26b4a2235864f7cd5b48a35dcea6 modularized two printing function into a seperate script
e0033b8f440f2ffb7b9a120f5a9be9ea167e1e30 used some functions from previous bash script, maybe I should create a generic script for text output...?
git log master...develop
的输出
commit 54d8daf475a5e1108cd6345850245db2d0e6fd80 Author: Hans Date: Thu Jun 21 21:27:14 2012 +0200 changed the how function, it seems I was right, wc counts all lines regardless of readable symbols or not. commit 13d35ed979de3518eca26961f3be4bb0b7d8de03 Author: Hans Date: Thu Jun 21 21:09:44 2012 +0200 am working on the how function (should be trivial, but I have a bad feeling) commit 852fb68b8ca929e1156e38e2a58a12f07bd9aaa5 Author: Hans Date: Thu Jun 21 20:58:16 2012 +0200 I have added some more commands (thought not fully implemented), but more specifically I have changed the pattern matching slightly, it is now a r commit 33dfc9f187a54dc7234c9ca31bee91eef7c89a98 Merge: a248465 9e24e91 Author: Hans Date: Thu Jun 21 20:42:56 2012 +0200 change some output settings, asthetics and such. I am working on getting more command options for list previous lines and such commit a2484654eff741f4c625f8cb097fbb92f6ac8b9b Author: Hans Date: Thu Jun 21 20:23:52 2012 +0200 added another sanity check for cli parameters commit 9e24e9157157f128f75b3d7859875d06d33137bd Author: Hans Date: Thu Jun 21 20:23:52 2012 +0200 added another sanity check for cli parameters commit 0194cab8af66656bb9fe83c919409354f6d12edc Author: Hans Date: Thu Jun 21 20:06:02 2012 +0200 I am working on getting the console improved, this including better color, and more cammand options
最佳答案
您可以对任何分支使用 reflog: git reflog
来查看该引用的历史记录,然后只需使用 git reset --hard HEAD@{INDEX_HERE}
即可恢复该分支的更改。
第一个图显示了当您在 master 分支中进行提交,然后在开发分支中进行 git pull
时的情况。 git pull
会将跟踪分支(master) merge 到当前分支(develop)中。
如果您可以发布分支 master 和development 的引用日志,那么我们可以检查它。
关于git - 如何从 master 中分离出一个分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157479/