1. 初始化本地庫
2. 工作區→快取區→版本庫 (工作區:電腦中可以看到的目錄)資料夾中生成.git版本庫,包括stage(index),還有git自動建立的分支master,指向master分支的指標head指標。$ git init
拆分作業3. 提交時,漏掉了某檔案新增、提交一步到位$ git add [file1] [file2]
$ git add [dir1] [dir2]
$ git add .
$ git commit -m "a readme file"
$ git commit -am "once"
$ git commit -a -m "once"
$ git commit [file] [folder] -m ""
4. 撤銷修改$ git add ***
$ git commit --amend 編輯工具會顯示最近一次提交的提交message,可以修改
$ git commit --amend -m
$ git commit --amend --no-edit (加入--no-edit引數,會修復提交但不修改提交資訊)
a. 撤銷工作區的修改,不影響快取區5. 檢視b. 撤銷快取區的修改,將修改內容放回工作區,與工作區後期修改合併(clean 或者合併2處修改)$ git checkout -- [file1] [file2]
$ git checkout -- .
$ git reset head ***(檔名)
$ git reset head .
6.回退版本$ git status
$ git diff *** 工作區和快取區
$ git diff --cached/staged 已經暫存起來的檔案和上次提交時的快照之間的差異
$ git diff head -- *** 工作區和版本庫
注:修改並add乙個版本,工作區再改回來,工作區與版本庫無差別。有待add的檔案, add 後無待commit的檔案了
$ git log 顯示從最近到遠的提交日誌
$ git log --stat 顯示commit歷史,以及每次commit發生變更的檔案
$ git log -p [files] 顯示指定檔案的每次commit的diff
$ git log -p -2 常用 -p 選項展開顯示每次提交的內容差異,用 -2 則僅顯示最近的兩次更新, 還有其他引數可選
$ git log -[number] --pretty --oneline 顯示最近number次的log
$ git log --pretty=oneline 漂亮地展示
$ git log --graph 分支合併圖
$ git log --graph --pretty=oneline --abbrev-commit 分支合併情況
head表示當前版本,即最新的提交,head^上乙個版本, head^^, head~100, clean。(--soft不會clean,modified)7.回到未來版本$ git reset --hard head^
$ git reset --hard head 等價於 clean掉工作區和快取區
$ git reset --hard [commit_id]
$ git reset [commit_id] (非clean,有待新增的檔案)
當回退到某個版本x後,想回來,發現git log中,看不到x之後的commit記錄(x+1)。此時,8.「儲藏」和「恢復」工作現場a. 你的命令列還沒關,你就可以順著往上找,找到對應的commit id
b. $ git reflog,找到對應的commit id
$ git reset --hard 3628164
9.檔案重新命名$ git stash pop 恢復的同時把stash內容也刪了$ git stash
$ git stash list 檢視
$ git stash drop (.......)
10.刪除檔案,手動刪除之後,2個選擇:其實,執行 git mv 就相當於執行了下面三條命令:$ git mv readme.txt readme
$ mv readme.txt readme
$ git rm readme.txt
$ git add readme
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f(譯註:即 force 的首字母),以防誤刪除檔案後丟失修改的內容。a.從版本庫中刪除 $ git rm *** / add commit
b.誤刪了,恢復 $ git checkout -- *** (撤銷工作區修改)
另外一種情況是,我們想把檔案從 git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。用 --cached 選項即可:
後面可以列出檔案或者目錄的名字,也可以使用 glob 模式。比方說:$ git rm --cached readme.txt
注意到星號 * 之前的反斜槓 ,因為 git 有它自己的檔案模式擴充套件匹配方式,所以我們不用 shell 來幫忙展開(譯註:實際上不加反斜槓也可以執行,只不過按照 shell 擴充套件的話,僅僅刪除指定目錄下的檔案而不會遞迴匹配。上面的例子本來就指定了目錄,所以效果等同,但下面的例子就會用遞迴方式匹配,所以必須加反斜槓。)。此命令刪除所有 log/ 目錄下擴充套件名為 .log 的檔案。類似的比如:$ git rm log/\*.log
會遞迴刪除當前目錄及其子目錄中所有 ~ 結尾的檔案。$ git rm \*~
本地檔案上傳git
將本地檔案上傳至git.一 git上建立倉庫 二 將檔案上傳至git倉庫 1.先進入專案資料夾,通過命令 git init 把這個目錄變成git可以管理的倉庫 git init 2.把檔案新增到版本庫中,使用命令 git add 新增到暫存區裡面去,不要忘記後面的小數點 意為新增資料夾下的所有檔案 ...
git忽略本地檔案
1 git通常在.gitignore檔案進行配置,來忽略本地檔案。但是這僅對於重來沒有提交過的檔案有效。2 使用git update index skip worktree path設定標識,使git忽略對應的檔案。3 使用git update index assume unchanged path...
本地git倉庫命令
git config global use.name 名 配置使用者資訊 git config global user.email 郵箱 配置資訊來顯示誰提交的,如果沒有配置,那麼會顯示預設的名稱和郵箱 git add 新增所有 git commit m 改動描述1.0 提交專案 git log 列...