GIT登台区域和工作目录中同时修改的文件

时间:2014-03-18 14:42:03

标签: git

我正在学习GIT,给出的简单示例显示了将文件添加到临时区域,修改它们并再次添加的基本周期。有时,它们会显示文件在工作目录中的暂存区域中标记为已修改的情况。我将它概念化的方式,我不能修改暂存区域中的文件,所以我很困惑他们是如何做到的。这就是我正在做的事情:

➜ touch one.txt
➜ git status -s
?? one.txt
➜ git add one.txt
➜ git status -s
A one.txt
➜ echo "test" > one.txt
➜ git status -s
AM one.txt
➜ echo "some modification" >> one.txt
➜ ~/Desktop/junky > git status -s
AM one.txt

那么,如何让文件在两个区域中显示为已修改? (即最后一行是MM one.txt)

2 个答案:

答案 0 :(得分:1)

执行git add one.txt时,您将one.txt添加到临时区域,就像那时一样。

您之后所做的任何更改都会使git将您的文件标记为已修改,但不会影响该文件的暂存版本。 因此,您有一个A版本的文件(暂存区域中的版本)和一个M修改版本的文件(未上传的版本)。

要同时获得M,您可以执行此操作

echo 'test' >> test.txt
git add test.txt
git commit -m "testing some stuff"
echo 'test2' >> test.txt
git add test.txt
echo 'test3' >> test.txt

完成此操作后,您将拥有

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   test.txt
#
# 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)
#
#       modified:   test.txt

答案 1 :(得分:0)

我认为获取MM的方法是提交文件,编辑文件,添加文件(登台)并再次编辑。

然后Git将显示M而不是A(它不再是新文件)加上第二个M表示“这已在工作区中修改但尚未添加”