我开始对目录进行版本控制,如下所示。
git init
git add .
然后,我进行了修改,添加/删除/更改文件。在我完成之后,我运行
git status
获得以下结果。
# (use "git add/rm ..." to update what will be committed) # (use "git checkout -- ..." to discard changes in working directory) # # deleted: bash/_bash_profile # deleted: bash/_bashrc # modified: functions.sh # modified: readme.txt # # Untracked files: # (use "git add ..." to include in what will be committed) # # bash/bash/ # template/
现在,我可以完全按照'git status'的要求去做。
对于已删除的文件运行git rm。
对于修改/添加的文件,运行git add
我的问题是:我该如何自动化?我看到 git已经知道对修改后的文件执行什么操作。
答案 0 :(得分:2)
是的,有一个简单的方法:
git add -u
这将在当前目录中添加所有修改(如果您想要所有内容,请从您的仓库的顶层运行它)。但是,它不会添加任何未跟踪的文件。如果你也想这样做,你可以使用:
git add .
将添加当前目录中的所有文件。 (这意味着它将获取修改和未跟踪的文件,但不会删除add -u
)。
确保在执行此操作之前和之后检查git status
,以确保您获得了想要上演的内容。如果您更喜欢commit -a
,请更加小心地检查状态。添加你不想提交的内容非常容易。
有关详细信息,请查看man page。
答案 1 :(得分:2)
如果您在提交时传递-a
标记,则在提交之前将自动为您暂存所有未分级的更改:
git commit -a
如果您还不想提交,可以使用-u
标志代替git-add:
git add -u
此u
pdates分阶段文件集将全部更改为跟踪文件。但是,它并没有获取新的未跟踪文件 - 为此,您只想再次git add .
。
答案 2 :(得分:1)
输入git-add交互模式:
git add -i
然后输入u*q
。这将更新,暂存所有更改并退出。