管理修改
之前一直以為git管理的是我們修改過後的檔案,才發現原來我認為的是錯,git跟蹤管理的是修改,而並非檔案
首先,我們對readme.txt進修改
$ cat readme.txt
11111
2222
3333
4444
5555
6666
然後,新增
$ git add readme.txt
$ git status
on branch master
changes to be committed:
(use "git reset head ..." to unstage)
modified: readme.txt
再修改readme.txt,然後提交
$ git commit -m "add"
[master 0c85a37] add
2 files changed, 4 insertions(+), 1 deletion(-)
檢視狀態
$ git status
on branch master
changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: readme.txt
第二次的並沒有被提交
因此我們可以看出git管理的是修改,我們使用git add命令,只是把修改放入了暫存區,使用 git commit只負責把暫存區的修改提交到當前master分支當中
撤銷修改
撤銷修改可以分為三種情況
第一種:修改後還沒有被放到暫存區
$ cat readme.txt
\f0\fs24 \cf0 11111\
2222\
3333\
4444\
5555\
6666\
7777
8888
$ git status
on branch master
changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: readme.txt
$ git checkout -- readme.txt
$ cat readme.txt
\f0\fs24 \cf0 11111\
2222\
3333\
4444\
5555\
6666\
7777
使用git checkout -- readme.txt 就可以復原到之前的版本
第二種:修改了而且已經新增到了暫存區
$ cat readme.txt
\f0\fs24 \cf0 11111\
2222\
3333\
4444\
5555\
6666\
7777
8888}
$ git add readme.txt
$ git status
on branch master
changes to be committed:
(use "git reset head ..." to unstage)
modified: readme.txt
$ git reset head readme.txt
unstaged changes after reset:
m readme.txt
$ git status
on branch master
changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: readme.txt
$ git checkout -- readme.txt
$ cat readme.txt
\f0\fs24 \cf0 11111\
2222\
3333\
4444\
5555\
6666\
7777
使用git reset head readme.txt 可以把暫存區的修改給撤銷
第三種: 已經提交到了版本庫,但是並沒有推送到遠端庫中,可以使用版本退回的命令撤銷
git reset -- hard head^
刪除檔案
使用rm可以直接刪除資料夾中的檔案
$ rm test.txt
$ git status
on branch master
changes not staged for commit:
(use "git add/rm ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
deleted: test.txt
使用git rm test.txt可以把版本庫的檔案刪除
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master f20e07c] remove test.txt
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 test.txt
如果不小心把工作去的檔案刪除了,可以使用
git checkout -- test.txt回到之前的版本
git學習筆記 管理 撤銷修改
git add readme.txt git status 位於分支 master 要提交的變更 使用 git reset head 檔案 以取消暫存 git commit m git tracks changes master 376d9c0 git tracks changes 1 file c...
git 修改 撤銷
git status 初始狀態是,什麼都沒有修改 on branch master nothing to commit working directory clean 修改了乙個檔案fu 狀態變成 root 172.18 4.100 gitlearn git status on branch mas...
Git撤銷修改
撤銷修改 加入在readme中加入了不想要的語言,在沒提交之前,使用 git status 檢視可以得到如下 遇到這種情況可以手動刪除,也可以使用 git checkout file命令丟棄工作區的修改。如圖,新的文件中取出了新增的部分。git checkout readme.txt會遇到兩種情況。...