我在Mac 10.6.6上使用Git 1.7.4.1。从命令行,如何仅在单个目录中提交更改?我通过执行以下操作添加了目录:
git add my-dir
但正在做
git commit -a
显示我的仓库中所有更改的列表,我只想提交并推送来自my-dir
的更改。
答案 0 :(得分:51)
为什么没有人提到你可以简单地
git commit -m 'message' -- my-dir
在我看来,OP不习惯/不喜欢直接使用临时区域。这种方法在没有进一步背景的情况下推荐也更安全,因为可能是违约提交(已经上演的所有内容)
答案 1 :(得分:36)
省略-a
选项。然后git
将仅提交您使用git add
暂存的文件。
您也可以尝试提交目录而不使用git commit my-dir
暂存。
答案 2 :(得分:14)
git add my-dir
git commit -m "Commiting first revision of my-dir folder. Very exciting feature!"
git push origin master
答案 3 :(得分:6)
<强>基本强>
git add -- ./myfolder
git commit -m'my comment' -- ./myfolder
有更多文件和目的地
git add -- ./myfolder1 ./myfolder2./some/random/file.txt
git commit -m'cool' -- ./myfolder1 ./myfolder2 ./some/random/file.txt
我在寻找git bare repo
git --git-dir=path/to/my/repo --work-tree=path/to/my/working/tree add -- ./myfolder
git --git-dir=path/to/my/repo --work-tree=path/to/my/working/tree commit -m'my comment' -- ./myfolder
请记住引用带空格或疯狂字符的路径
答案 4 :(得分:4)
只需按照您的指定使用git add
暂存文件夹,然后在没有-a
选项的情况下进行提交:git commit -m "Committing stuff"
。 -a
选项意味着提交所有已修改的文件,即使它们没有被暂存。
答案 5 :(得分:4)
在一个命令中完成所有操作:
git commit -- my-dir
答案 6 :(得分:2)
您将在“暂存区”中提交任何更改;你可以用git status
看到这些。
-a
中的git commit -a
标志,根据手册页,告诉git大致“暂存所有已修改或删除的文件,但不是你没有告诉git的新文件” - 这不是您想要的
本课程应了解命令行选项
要解决此问题,根据How to undo 'git add' before commit?,您要做的第一件事就是取消使用commit -a
选项意外添加的所有文件。根据该答案,您必须执行命令git rm -r --cached .
,现在您的更改仍应存在,但不会进行任何操作。
现在你可以像以前一样做git add my-dir
。然后,您可以git commit
(没有-a
)