我正在使用msysgit(1.7.9),我正在寻找正确的git ls-files命令调用,以显示当前级别的(跟踪的)文件和目录,无论是从索引还是当前工作目录,如果这是更轻松.
基本上它会给出一个类似于你在Github上看到的目录列表.来自Windows,我不太熟悉正确的方法(?).
我想知道HEAD裸存储库的目的是什么?它是否仅在克隆存储库时才使用,以了解在克隆存储库中要检出的分支?
请注意,这个问题不是关于what is HEAD,但考虑到它的功能,我想知道为什么在bare存储库中需要它.
如何删除提交,等待推送到远程?

我的情况是,那些排队提交(更改)已被推送(更严重),现在服务器拒绝接受那些因为他们在HEAD后面.
我尝试重置为另一个提交,但是当我回到HEAD时,再次重新出现.
单击存储库>刷新远程状态将无济于事,它实际上添加了第二个等待推送:)
PS:我为我的术语道歉,我对git很新.
.
更新1
当我将feature2提交到master分支时,问题就开始了.我没有权利在那里提交所以它被卡住了.然后我再次回到我的个人分支,这很好.然后我有一个等待提交,永远不会被推,即使我单击Push时选择了正确的(个人)分支.

我在Stackoverflow /其他地方尝试了很多链接,以正确理解其行为
git reset --hard option
我知道:
origin,则在最近的提交中完成重置origin我不明白的是以下值:
originHEADorigin/masterorigin/branch所有似乎都有相同的行为,即他们指向最新的提交master.
请解释上面提供的所有4值选项的重要性.
我还想知道我是否在特定分支上如何重置为该分支上的最后一次提交?例如v1.2,如果我在,origin/v1.2仍然会带我到最新的提交master.
哦哦...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),却不知道我在做什么(或者Git会做什么).
我现在想要撤消所有这样的事情:
.git)恢复到某个分支(最后一个将立即执行).我找到了对git reset --soft和git reset --hard的引用,但我已经向自己证明了我可以通过过早地使用命令而不完全理解它来做真正的损害.:)
我找到了git reset手册页,但我仍然感到困惑:
HEAD?HEAD和之间有什么区别
* master?--soft,--hard或其它(3个选项)?git reset)来"完成"逆转?更新:阅读以下答案后:
git reset --hard
HEAD^?出于好奇,我尝试了以下方法:
git checkout head
Run Code Online (Sandbox Code Playgroud)
我得到了这个:
$ git checkout head
Note: checking out 'head'.
You are in 'detached HEAD' state.
Me@MyPC /c/repo ((9da1bd7...))
$
Run Code Online (Sandbox Code Playgroud)
而
git checkout HEAD
Run Code Online (Sandbox Code Playgroud)
什么都不做(如预期的那样).那么前命令究竟在做什么呢?
更多信息:是的,我在Windows上.据我所知,它没有创建标签或分支:
Me@MyPC /c/repo ((9da1bd7...))
$ git log -n 1
commit 9da1bd740434923ae55ca1b50efb7c62eb6e0c35
Author: someone else
Date: Fri Dec 6 15:44:08 2013 +0100
Me@MyPC /c/repo ((9da1bd7...))
$ git tag -l
TestRelease
Me@MyPC /c/repo ((9da1bd7...))
$ git branch -l
* (detached from head)
master
Run Code Online (Sandbox Code Playgroud) 它看起来都对我完成了同样的任务.
是否存在不同的情况?
有什么区别:
git push origin HEAD
git push origin [current-branch-name]
我想做这样的事情:
$ git fetch origin
$ git rebase -i origin/a_very_very_very_long_branch_name
Run Code Online (Sandbox Code Playgroud)
在哪里,我的本地分支名称与a_very_very_very_long_branch_name.
因此,当我执行这种命令时,我不想一次又一次地复制和粘贴长分支名称.
Git中有当前分支名称的快捷方式吗?
什么是^在git reset --hard HEAD^做而不只是git reset --hard HEAD 有没有区别?
如果我git show在git repo中单独使用所有内容,则会显示一堆信息,例如commits,diffs等。
此页面(https://git-scm.com/docs/git-show)只是说:
Shows one or more objects (blobs, trees, tags and commits).
我认为这是最新的提交。还有一些差异(在文档页面中未提及)。
但是到底显示了什么呢?
这是完整的,相当难以理解的输出...
$ git show
commit <sha1 A> (HEAD -> A)
Merge: <sha1 B> <sha1 C>
Author: Snowcrash <my@email>
Date: Sat Jul 14 14:56:02 2018 -0700
with both files
diff --cc 1
index <sha1 D>,<sha1 E>..<sha1 F>
--- a/1
+++ b/1
@@@ -1,5 -1,6 +1,12 @@@
1
++<<<<<<< HEAD
+A
+B
+C
++=======
+ C
+ D
+ E
+
++>>>>>>> …Run Code Online (Sandbox Code Playgroud)