寫這篇博文的目的只是簡單的給自己及團隊的日常工作中需要用到的git命令作個匯總,這樣平時只需要查閱這篇文章就夠了,不用到處查找。如果能給有需要的朋友一點點的幫助,那也算是意外之喜吧。
一、基礎配置
# 設置用戶名和郵箱(首次使用必配)
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# 查看配置列表
git config --list
二、倉庫操作
# 初始化新倉庫
git init
# 克隆遠程倉庫
git clone <repo_url>
# 查看倉庫狀態
git status
三、代碼提交
# 添加文件到暫存區
git add <file> ?# 單個文件
git add . ? ? ? # 所有修改
# 提交到本地倉庫
git commit -m "commit message"
# 修改最后一次提交
git commit --amend
# 撤銷未提交的修改(保留文件)
git restore --staged <file> ?# 從暫存區撤出
git restore <file> ? ? ? ? ? # 丟棄工作區修改
# 撤銷最近一次提交(保留修改)
git reset --soft HEAD~1
# 撤銷遠程提交(強制推送覆蓋)
git push -f origin <branch>
?
四、分支管理
# 查看分支
git branch ? ? # 本地分支
git branch -a ?# 所有分支
# 創建/切換分支
git checkout -b <new_branch>
# 合并分支
git merge <branch_name>
# 刪除分支
git branch -d <branch_name>
# 對比兩個分支差異
git diff branch1..branch2
# 對比本地與遠程
git diff @{upstream}
# 圖形化對比工具
git difftool -t vscode ?# 使用VSCode對比
?
五、遠程協作
# 關聯遠程倉庫
git remote add origin <url>
# 推送到遠程
git push -u origin <branch>
# 拉取更新
git pull origin <branch>
# 查看遠程庫信息
git remote -v
六、版本控制
# 查看提交歷史
git log --oneline --graph
git reflog show # 查看操作歷史
# 回退版本
git reset --hard <commit_id>
# 暫存當前修改
git stash
git stash pop
七、實用技巧
# 查看文件修改差異
git diff
# 撤銷工作區修改
git checkout -- <file>
# 重命名文件
git mv <old> <new>
八、協作場景解決方案
# 同步上游倉庫更新
git remote add upstream <original-repo-url>
git fetch upstream
git merge upstream/main
# 解決沖突后繼續變基
git rebase --continue
# 提交PR前清理歷史
git rebase -i origin/main
?
?九、建立遠程倉庫
以Gitee平臺為例。
一)、前期準備?
-
?注冊平臺賬號?
- Gitee
- 完成郵箱驗證(必需步驟)
-
?配置本地Git身份
-
?生成SSH密鑰(免密推送必備)
?
??二)、創建遠程倉庫(以Gitee為例)?
-
?網頁端操作?
- 點擊「+」→「新建倉庫」
- 填寫倉庫名(如?
project-demo
) - 選擇公開/私有 → 勾選「使用Readme初始化」→ 創建
-
?獲取倉庫地址?
- HTTPS:
https://gitee.com/yourname/project-demo.git
- SSH:
git@gitee.com:yourname/project-demo.git
(推薦)
- HTTPS:
三)、關聯本地倉庫?
? 場景1:已有本地項目
# 進入項目目錄
cd existing-project# 初始化本地倉庫
git init# 關聯遠程倉庫
git remote add origin git@gitee.com:yourname/project-demo.git# 首次推送(-u 設置上游分支)
git push -u origin master # 或 main 分支
? 場景2:全新項目
# 克隆遠程倉庫到本地
git clone git@gitee.com:yourname/project-demo.git# 進入目錄添加文件
cd project-demo
touch new-file.txt# 提交并推送
git add .
git commit -m "Add new file"
git push origin master
?十、.gitignore文件配置
?
?一)、.gitignore核心語法手冊
1. 基礎匹配規則
-
#
:注釋行(例:# 忽略臨時文件
) -
/
前綴:僅匹配根目錄(例:/debug.log
不匹配src/debug.log
) -
*
通配符:跨文件名匹配(例:*.tmp
匹配所有.tmp后綴文件)
2. 高級路徑控制
-
**/
:遞歸匹配任意子目錄(例:**/cache/
忽略所有cache目錄) -
!
取反:強制跟蹤例外文件(例:!important.log
突破*.log
限制)
3. 字符集匹配
-
[abc]
:匹配指定字符(例:test[123].txt
匹配test1.txt但排除test4.txt) -
?
:匹配單個字符(例:file?.js
匹配fileA.js不匹配file10.js)
4. 刪除已跟蹤文件
git rm --cached <file>
# 從Git歷史徹底刪除誤提交文件
git filter-branch --force --index-filter \"git rm --cached --ignore-unmatch sensitive.txt" \--prune-empty --tag-name-filter cat -- --all
5.強制添加被忽略文件
git add -f secret.cfg
?合理配置.gitignore可降低90%的倉庫冗余,結合git sparse-checkout
還能實現部分克隆。建議定期審計忽略規則,將其納入項目腳手架標準化管理。