前端開發常用git命令詳細版
1.新建程式碼庫
- 當前目錄建立一個git程式碼庫
git init
-
新建一個目錄檔案 將其初始化為git程式碼庫
git init [pro-name]
-
遠端拉去專案
git clone [url]
2.基本配置
git的設定檔案為.gitconfig,他可以在使用者主目錄下(全域性配置),也可以在專案目錄下(專案配置)
-
設定提交程式碼時的使用者資訊
git config [--global] user.name '[name]'
git config [--global] user.email '[email]'
-
編輯git配置檔案
vim ~/.gitconfig
-
顯示git配置
git config --list
-
顯示git配置
cat ~/.gitconfig
3.增加、刪除檔案
新增
-
新增自定檔案到快取區
git add [file1] [file2] ...
-
新增整個目錄(資料夾...)到快取區
git add [dir]
-
新增所有目錄到快取區
git add .
刪除
-
刪除工作區檔案,並將刪除放入快取區
git rm [file-Name]...
-
直接刪除檔案
fir rm -fr [file-name]...
-
修改檔名稱,並且將這個檔名放入暫存區
git mv [old-name] [new-name]
4.提交程式碼
-
提交暫存區到倉庫
git commit -m '[msg]'
-
提交暫存區指定檔案到倉庫
git commit [file1] [file2].. -m '[msg]'
-
提交工作區上次commit之後變化的,直接到倉庫
git commit -a (注意:儘量別這麼幹)
-
提交時顯示所有diff(提交)資訊
git commit -v
-
使用一次新的commit ,代替上一次提交如果程式碼沒有任何變化,這用來改寫上一次commit的提交資訊
git commit --amend -m '[msg]'
5.分支管理
建立分支
-
列出所有本地倉庫分支
git branch
-
列出所有遠端倉庫分支
git branch -r
-
列出所有本地和遠端分支
git branch -a
-
建立一個分支,但依然停留在當前分支
git branch [name]
-
建立一個分支,並切換
git checkout -b [name]
-
檢視日誌
git log
-
新建一個分支 只想指定的commit Id
git branch [br -name] [commit]
切換分支
-
切換分支
git checkout [name]
-
拉去最新變化
git pull
新建分支,與遠端建立關係
-
本機分支及資訊全部推到遠端
git push -u origin [branchname]:[branchname]
-
檢視origin資訊
git remote -v
-
新建一個分支,與遠端分支建立關係
git branch --track [branch] [remote branch]
git branch --track DevOps_RC2 remotes/origin/DevOps_RC1
合併分支
git merge [name]
-
解決衝突
在原生代碼會有提示去修改即可,命令列不在多說
-
檢視當前狀態
git status
刪除分支
git branch -d [name]
-
檢視當前分支詳細資訊
git branch -av
-
刪除遠端分支
git push origin --delete [name]
-
刪除遠端分支2
git branch -dr [remotes.origin/br-name]
git branch -av
總結
-
建立本地分支
git checkout -b [name]
-
本地分支推送到遠端
git push origin [name]:[name]
6.標籤tag
-
列出所有tag
git tag
git tag -l
git tag --list
-
建立一個tag在當前cmmit
git tag [name]
-
建立一個tag在指定的cinnit
git tag [name] [commitId] -m '[msg]'
-
檢視tag資訊
git show [tag-name]
-
提交置頂tag到遠端倉庫
git push origin [tag-name]
-
提交所有tag
git push origin --tag
-
機遇某個tag建立分支並切換
git checkout -b [br-name] [tag-name]
7.檢視資訊
-
檢視所有變動檔案
git status
-
顯示當前分支的版本歷史
git log
-
顯示commit歷史,以及每次commit發生變動的檔案
git log --stat
-
顯示某個檔案歷史版本,檔名
git log --follow [file-name]
git whatchanged [file-name]
-
顯示自定檔案相關的diff
git log -p [file-name]
-
顯示自定檔案是什麼人在什麼時間修改的
git blame [file-name]
-
顯示暫存區和上一個commit的差異
git diff --cached [commit id] 注意不寫就是最新的
-
顯示工作區與當前分支最新commit之間的差異
git diff HEAD
-
顯示兩分鐘之間的差異
git diff [br-name] [br-name]
-
顯示兩次commit之間的差異
> git diff [commitid] [commitid]
-
顯示目次提交元資料和內容變化
git show [commit]
-
顯示某次提交發生變化的檔案
git show --name-only [commit]
-
顯示某次提交某個問價內容
git show [commit]:[file-name]
顯示所有提交
git reflog
8.遠端同步
-
拉去遠端倉庫所有變動
git fetch origin
-
顯示所有遠端倉庫
git remote -v
-
顯示某個遠端倉庫資訊
git remote show origin
-
新增加一個倉庫
git remote add [shortname][url]
-
取回遠端倉庫的變化,並與本地分支合併
git pull [remote] [branch]
-
上傳本地指定分支到遠端倉庫
git push [remote] [branch]
-
強行推送當前分支到遠端倉庫,即使有衝突
git push [remote] --force
-
推送所有分支到遠端倉庫
git push [remote] --all
9.撤銷
-
恢復到暫存區的自定檔案到工作區
git checkout [file]
-
恢復某個commit的自定檔案到工作區
git checkout [commit] [file]
-
恢復上一個commit的所有檔案到工作區
git checkout .
-
重置暫存區的自定檔案,與上一次commit保持一致,但工作區不變
git reset [file]
-
重置暫存區與工作區,與上一次commit保持一致
git reset --hard
-
重置當前分支的指標為指定 commit,同時重置暫存區,但工作區不變
git reset [commit]
-
重置當前分支的 HEAD 為指定 commit,同時重置暫存區和工作區,與指定 commit 一致
git reset --hard [commit]
- 重置當前 HEAD 為指定 commit,但保持暫存區和工作區不變
git reset --keep [commit]
-
新建一個 commit,用來撤銷指定 commit
-
後者的所有變化都將被前者抵消,並且應用到當前分支
git revert [commit]