【发布时间】:2014-02-04 23:18:02
【问题描述】:
我以为 git commit 只会将暂存文件提交到 repo,
git ci a.txt
然后将修改后的a.txt(内容:b)提交到repo,而不是暂存的a.txt(内容:a)
那么什么命令可以 git 将暂存文件提交到 repo ,并像往常一样保留修改后的文件。
谢谢。
【问题讨论】:
标签: git
我以为 git commit 只会将暂存文件提交到 repo,
git ci a.txt
然后将修改后的a.txt(内容:b)提交到repo,而不是暂存的a.txt(内容:a)
那么什么命令可以 git 将暂存文件提交到 repo ,并像往常一样保留修改后的文件。
谢谢。
【问题讨论】:
标签: git
当您执行git commit(没有路径规范)时,您只会提交分阶段的更改。因此,为了不提交新的更改到a.txt,而不是执行git ci a.txt,只需执行git commit,这不会提交新的未暂存更改。
【讨论】:
a.txt和vimrc,如果我输入git ci那两个暂存文件将被提交,如何只提交暂存的a.txt?谢谢
vimrc 文件。 git reset HEAD vimrc 会为你做这件事,检查当你做 git status 时显示的帮助消息是否准确地说明了这一点。
STAGED FILES,对吧?
git add -p a.txt,它会遍历每一个大块,让你决定是否上演。
git stash --keep-index && git commit a.txt && git stash pop。请注意,stash 将以当前的 HEAD 作为父级,git stash pop 将导致包含暂存和未暂存行的文件发生合并冲突
$git add a.txt
这会将一个文件添加到 git,这意味着 git 将开始跟踪该文件的任何更改。此操作仅对创建的新文件执行。 $git add . 将添加该文件夹级别中存在的所有文件。
现在
git commit -m "Initial commit.
这会提交当前文件并将其推送到暂存区。如果您有旧文件,请说 b.txt and c.txt,其中包含更改并且已经被 git 跟踪。您需要单独提交它们
`git commit -m "Issues fixed /path/b.txt /path/c.txt`
如果远程仓库已更改 $git pull 和 $git push,现在进行拉取。推送会将所有三个文件a.txt, b.txt and c.txt 发送到远程仓库。
【讨论】:
您对已暂存文件所做的任何更改都不会自行暂存。你必须明确地暂存它们。
【讨论】:
git commit -- PATHSPEC 创建一个提交,其中包含与 REFSPEC 匹配的文件的当前签出版本(即:暂存和未暂存)。
这有点违反直觉,因为 reglar git commit 创建分阶段更改的提交,而人们可能期望 git commit -- PATHSPEC 也这样做,但只包含某些文件。
一种解决方法是先git stash --keep-index,然后git commit -- a.txt,然后git stash pop。这将导致合并冲突,但是在(不常见的)同一行同时被暂存和未暂存的情况下。
【讨论】: