關於文件狀態 一般倉庫中的文件可能存在於這4種狀態: 1)Untracked files → 文件未被跟蹤(A) 2)Untracked but not Change → 已跟蹤,但是未修改(B) 3)Changes but not updated → 已跟蹤,文件被修改,但並沒有添加到暫存區(C) ...
關於文件狀態 一般倉庫中的文件可能存在於這4種狀態:
1)Untracked files → 文件未被跟蹤(A) 2)Untracked but not Change → 已跟蹤,但是未修改(B) 3)Changes but not updated → 已跟蹤,文件被修改,但並沒有添加到暫存區(C) 4)Changes to be committed → 已跟蹤,文件被修改,已添加到暫存區,這是下次提交的內容(D) 常用GIT命令 1. git clone (B) 說明:將代碼克隆到本地(本地:當前控制台進入的目錄) 2. git add (A->D) git add <filePath/folderPath> 說明:將指定新文件添加到本地暫存區(可以是一個文件,也可以是一個文件夾下麵的所有文件)
git add . 說明:將所有的新文件提交暫存區 git add --all 說明:將所有的新文件提交暫存區 3. git reset HEAD <filePath/folderPath> (D->A) 說明:將新添加的文件撤出暫存區 4. git commit (C->D) git commit <filePath/folderPath> 說明: 將指定文件修改提交到本地暫存區(可以是一個文件,也可以是一個文件夾下麵的所有文件)
git commit -a 說明:將所有修改過的工作文件提交暫存區git 5. git log 說明:查看commit提交日誌(每次提交會生成唯一的commit_ID) 6. git reset git reset --soft commit_ID 說明:將當前工作區恢復到commit_ID指示的那次狀態, 工作區代碼的修改保留 (D->C) git reset --hard commit_ID 說明:將當前工作區恢復到commit_ID指示的那次狀態, 工作區代碼的修改同時被強制回退到修改之前的狀態 (D->B) 7. git push (D->B) git push 說明:將提交到暫存區的修改推送到遠程倉庫 git push -u origin master 說明:clone到本地後的初次提交 8. git pull (B->B) 說明:將遠程倉庫更新到本地 9. git diff <filePath/folderPath> 說明:比較當前文件和暫存區文件差異(一個文件或者文件夾下麵的所有文件) 10. git status 說明:掃描當前工作區的所有改動,包括文件的增加、刪除、修改 11. git checkout git checkout <filePath/folderPath> 說明:撤銷本地修改(可以是一個文件,也可以是一個文件夾下麵的所有文件)
git checkout -f 說明:撤銷本地所有修改 關於衝突 大部分代碼衝突是以下情況產生: 本地代碼未更新到遠程倉庫的最新狀態, 然後本地修改之後進行pull操作, 如果遠程倉庫的代碼和本地修改代碼部分有重疊部分,這部分就會產生衝突。 這時把本地修改commit提交之後,進行pull操作 查看衝突文件如下: <<<<< 和 >>>>>>>之間的就是衝突代碼, "==========="之上的是本地的修改, "==========="之下的是遠程倉庫的最新代碼 然後根據實際情況,合併本地的修改和遠程倉庫的修改, 然後再進行commit操作即可。 關於文件的跟蹤設置 如果我們希望項目目錄下麵的某些文件的增刪改不被跟蹤(即不進入遠程倉庫),尤其是是編譯生成的中間文件和目標文件,需要在.gitignore中進行設置, 可以忽略某個文件夾,也可以忽略某個尾碼的一類文件。如果項目跟目錄下沒有該文件(.gitignore是個隱藏文件),則可以手動創建: 以.gitignore為文件名的一個文本文件。 例如: