在我正在经历的Git教程中,git commit用于存储您所做的更改.
什么git push用于那么?
我如何取消承诺我在git中的最后一次提交?
是吗
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
要么
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
?
你Git忽略观察/跟踪特定目录/文件的方式.你刚刚运行这个:
git update-index --assume-unchanged <file>
现在你如何撤消它,以便再次观看它们?(我们称之为取消.)
我对一个我不想提交到我的存储库的文件进行了本地更改.它是用于在服务器上构建应用程序的配置文件,但我想在本地使用不同的设置进行构建.当然,当我将'git status'作为要上演的东西时,该文件总是显示出来.我想隐藏这个特定的更改而不是提交它.我不会对文件进行任何其他更改.
经过一番挖掘后,我看到了两个选项:'假设未改变'和'跳过工作树'.这里的前一个问题谈到了它们,但并没有真正解释它们之间的区别.我的问题是:这两个命令有何不同?为什么有人会使用其中一个?
git rm将从暂存区域中删除条目.这与git reset HEAD"unstages"文件有点不同.通过"unstage"我的意思是它将暂存区域恢复到我们开始修改之前的状态.git rm另一方面,只需将文件完全从舞台上踢出,这样它就不会包含在下一个提交快照中,从而有效地删除它.默认情况下,a
git rm file将完全从暂存区域中删除文件,也将从磁盘>(工作目录)中删除.要将文件保留在工作目录中,您可以使用git rm --cached.
但究竟是什么区别git rm --cached asd和git reset head -- asd?
为了有效地使用git(并且按照预期),我进行了小型的原子提交,而我确实有更长的会话,我不仅要改变一件事.因此,我大量使用git add -p.但是,这对于全新的文件不起作用,因为我以后往往会忘记它们.
我想要做的是,告诉git有是一个新的文件,我想它来跟踪,但不是阶段,它:
示例:运行git status生成:
# On branch my-current-branch
# Your branch is ahead of 'origin/my-current-branch' by 2 commits.
#
# Changes to be committed:
#
<<STAGED SECTION>> // A
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
<<UNSTAGED-YET-KNOWN SECTION>> // B
#
# Untracked files: …Run Code Online (Sandbox Code Playgroud) 我有一个git存储库和Windows的问题.问题是git存储库中有一个linux符号链接,并且开发人员运行windows,这显然不起作用.现在因为这个符号链接永远不会改变,我想找到一种方法来删除开发人员并在其位置添加一个文件夹(这是符号指向的),但让git忽略这些特定的更改.现在我可以删除符号链接,创建一个同名文件夹,只需添加一个忽略所有内容的.gitignore.现在,为了确保git忽略了符号链接的删除,我在研究时发现了两种可能的解决方案.我找到的解决方案是:
git update-index --assume-unchanged [FILE]
git update-index --skip-worktree [FILE]
Run Code Online (Sandbox Code Playgroud)
我的问题是哪种方案效果最好?我想确保一旦我这样做,除非我特意这样做,否则它永远不会被撤消.我想确保恢复,重置,创建分支,合并等...一切正常.
我只是做了以下操作,以便在我的localhost和我的生产环境中保留config.php文件的不同副本:
$ git update-index --assume-unchanged application/config/config.php
Run Code Online (Sandbox Code Playgroud)
不幸的是,我并没有完全写入config.php文件,我应该和我需要扭转这种,这样我可以做出改变,提交它,然后重新忽略该文件.
如何撤消git update-index命令?
我不小心删了.git/index,有办法恢复吗?它被永久删除了.我还没有做任何事情.
在我运行git update-index --assume-unchanged path/to/file特定分支后,我无法使用切换分支git checkout.
它会引发以下错误:
错误:checkout将覆盖对以下文件的本地更改:
Run Code Online (Sandbox Code Playgroud)path/to/file请提交您的更改或存储它们,然后才能切换分支.
中止
但两个git diff&git status告诉我没有区别,没有什么可以提交/存储.
如何切换出分支?
是否有更好的替代方案git update-index --assume-unchanged(除了.gitignore因为我不希望它被忽略)?(与问题2相同@git update-index --no-assume-unchanged不起作用)