git 本地檔案命令

2021-09-13 22:58:32 字數 3440 閱讀 9530

1. 初始化本地庫

$ git init
資料夾中生成.git版本庫,包括stage(index),還有git自動建立的分支master,指向master分支的指標head指標。

2. 工作區→快取區→版本庫 (工作區:電腦中可以看到的目錄)
拆分作業

$ 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 ""

3. 提交時,漏掉了某檔案
$ git add ***

$ git commit --amend 編輯工具會顯示最近一次提交的提交message,可以修改

$ git commit --amend -m

$ git commit --amend --no-edit (加入--no-edit引數,會修復提交但不修改提交資訊)

4. 撤銷修改
a. 撤銷工作區的修改,不影響快取區

$ git checkout -- [file1] [file2]

$ git checkout -- .

b. 撤銷快取區的修改,將修改內容放回工作區,與工作區後期修改合併(clean 或者合併2處修改)

$ git reset head ***(檔名)

$ git reset head .

5. 檢視
$ 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 分支合併情況

6.回退版本
head表示當前版本,即最新的提交,head^上乙個版本, head^^, head~100, clean。(--soft不會clean,modified)

$ git reset --hard head^

$ git reset --hard head 等價於 clean掉工作區和快取區

$ git reset --hard [commit_id]

$ git reset [commit_id] (非clean,有待新增的檔案)

7.回到未來版本
當回退到某個版本x後,想回來,發現git log中,看不到x之後的commit記錄(x+1)。此時,

a. 你的命令列還沒關,你就可以順著往上找,找到對應的commit id

b. $ git reflog,找到對應的commit id

$ git reset --hard 3628164
8.「儲藏」和「恢復」工作現場
$ git stash

$ git stash list 檢視

$ git stash pop 恢復的同時把stash內容也刪了

$ git stash drop (.......)

9.檔案重新命名
$ git mv readme.txt readme
其實,執行 git mv 就相當於執行了下面三條命令:

$ mv readme.txt readme

$ git rm readme.txt

$ git add readme

10.刪除檔案,手動刪除之後,2個選擇:
a.從版本庫中刪除 $ git rm *** / add commit 

b.誤刪了,恢復 $ git checkout -- *** (撤銷工作區修改)

如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f(譯註:即 force 的首字母),以防誤刪除檔案後丟失修改的內容。

另外一種情況是,我們想把檔案從 git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。用 --cached 選項即可:

$ git rm --cached readme.txt
後面可以列出檔案或者目錄的名字,也可以使用 glob 模式。比方說:

$ git rm log/\*.log
注意到星號 * 之前的反斜槓 ,因為 git 有它自己的檔案模式擴充套件匹配方式,所以我們不用 shell 來幫忙展開(譯註:實際上不加反斜槓也可以執行,只不過按照 shell 擴充套件的話,僅僅刪除指定目錄下的檔案而不會遞迴匹配。上面的例子本來就指定了目錄,所以效果等同,但下面的例子就會用遞迴方式匹配,所以必須加反斜槓。)。此命令刪除所有 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 列...