我正在努力恢复我的工作.我愚蠢地做了git reset --hard,但在那之前我只做过get add .而且没做过git commit.请帮忙!这是我的日志:
MacBookPro:api user$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
# modified: .gitignore
...
MacBookPro:api user$ git reset --hard
HEAD is now at ff546fa added new strucuture for api
Run Code Online (Sandbox Code Playgroud)
git reset --hard在这种情况下可以撤消吗?
有什么区别:
git add .git commit -a我应该做两件事,还是多余的?
当我运行时git add -p,有没有办法让git选择新制作的文件作为选择?
因此,如果我创建一个新文件foo.java,然后运行git add -p,git将不允许我选择要添加到索引中的文件内容.
我正试图git add --interactive有选择地为我的索引添加一些更改,但我不断收到"你编辑的hunk不适用.再次编辑..."消息.即使我选择了e选项,我也会收到此消息,并立即保存/关闭我的编辑器.换句话说,根本不编辑hunk,补丁不适用.
这是我正在使用的确切示例(我正在尝试整理一个小型演示):
原始档案:
first change
second change off branch
third change off branch
second change
third change
fourth change
Run Code Online (Sandbox Code Playgroud)
新文件:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
Run Code Online (Sandbox Code Playgroud)
我试图展示如何使用git add --interactive只添加"错误修复1"行到索引.在文件上运行交互式添加,我选择了补丁模式.它告诉我
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off …Run Code Online (Sandbox Code Playgroud) 我犯了一个错误并打电话git add -all,现在添加了所有文件.我没有做commit和push.如何撤消我的动作?
我假设两者都以同样的方式工作.两者都将每个文件添加到索引.但我似乎错了.
git add .和之间有什么区别git add -u?我无法将文件夹及其所有子目录添加到我的git存储库中.我意识到这是一个非常受欢迎的问题,在做了一些谷歌搜索,我已经尝试了每个建议没有运气,特别是git-add上的手册页的建议.我甚至尝试git add -A过没有成功.为简单起见,假设我将我的git存储库初始化为Dir1.然后我有以下目录结构的文件.
Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt
Run Code Online (Sandbox Code Playgroud)
我的真实文件有超过5-6级深度的子目录,那么是否有一个git命令将每个子目录中的所有文件添加到我的存储库中?现在,当我从手册页中做出建议时,git add Dir1/\*我可以Dir2在我的仓库中看到,但它显示为绿色文件夹,我无法打开它,这让我相信所有的文件/文件夹都Dir2没有得到添加.任何帮助将不胜感激.我是一个新的git用户(使用它的时间不到一周),所以请尝试将你的说明保持在初学者的水平.
我创建了一个新的存储库,然后运行了git add -A.然后我注意到有一个文件夹包含大约100个不应该包含的文件,因此我将其添加到.gitignore.
我现在如何清除暂存区域,以便我可以add再次考虑更新后的所有文件.gitignore?
我在里面有几个.screen文件/xxx/documentation,它的子目录已经被Git跟踪了.
在修改了许多这些屏幕文件之后,我运行git add documentation/\\*.screen-as git-add文档中的第一个示例所示- 来暂存这些文件,但命令失败:
fatal: pathspec 'documentation/\*.screen' did not match any files
我的命令不好,还是git有bug?
git add一旦文件路径变得冗长,使用命令就会变得乏味.例如,
git add src_test/com/abc/product/server/datasource/manager/aats/DSManger.java
是否可以绕过指定绝对文件路径?可能会使用某种模式或什么?
我知道我们可以使用git gui.但是我想用cmd线来做.
提前感谢您的投入.
git-add ×10
git ×9
git-commit ×2
git-commands ×1
git-reset ×1
gitignore ×1
glob ×1
interactive ×1
patch ×1
repository ×1
shell ×1
undo ×1