1. 初始化與克隆
git init
初始化一個新的本地倉庫。git clone <repo-url>
克隆遠程倉庫到本地(如git clone https://github.com/user/repo.git
)。
2. 基礎操作
git add <file>
將文件添加到暫存區(如git add main.py
)。git add .
或git add -A
:添加所有變更文件。
git commit -m "提交信息"
提交暫存區的變更到本地倉庫。git commit -am "提交信息"
:直接提交已跟蹤文件的修改(無需add
)。
git status
查看工作區和暫存區的狀態。git diff
查看未暫存的變更內容。git diff --cached
:查看已暫存的變更。
3. 分支管理
git branch
列出所有本地分支(-a
查看所有分支,包括遠程)。git branch <branch-name>
創建新分支。git checkout <branch-name>
切換到指定分支。git checkout -b <branch-name>
:創建并切換到新分支(等效于git switch -c
)。
git merge <branch-name>
將指定分支合并到當前分支。git rebase <branch-name>
變基操作(將當前分支的提交移到目標分支的頂部)。git branch -d <branch-name>
刪除本地分支(-D
強制刪除未合并的分支)。
4. 遠程倉庫操作
git remote -v
查看遠程倉庫地址。git remote add <name> <url>
添加遠程倉庫(如git remote add origin https://github.com/user/repo.git
)。git push <remote> <branch>
推送本地分支到遠程倉庫(如git push origin main
)。git push -u origin main
:首次推送時設置上游分支。git push --force
:強制推送(謹慎使用)。
git pull <remote> <branch>
拉取遠程分支并合并(等效于git fetch
+git merge
)。git pull --rebase
:拉取時使用變基而非合并。
git fetch <remote>
下載遠程倉庫的變更,但不合并。
5. 撤銷與回退
git restore <file>
撤銷工作區的修改(未add
的變更)。git reset <file>
將文件移出暫存區(保留工作區修改)。git reset --hard HEAD
:丟棄所有未提交的變更(慎用!)。git reset --hard <commit-id>
:回退到指定提交(會丟失之后的提交)。
git revert <commit-id>
創建一個新提交來撤銷指定提交(安全回退方式)。
6. 日志與歷史
git log
查看提交歷史。git log --oneline
:簡潔模式。git log --graph
:圖形化顯示分支。
git show <commit-id>
查看某次提交的詳細信息。git blame <file>
查看文件的修改記錄(按行顯示作者)。
7. 暫存臨時工作
git stash
臨時保存未提交的變更。git stash pop
:恢復最近暫存的變更。git stash list
:查看所有暫存記錄。
8. 標簽管理
git tag
列出所有標簽。git tag -a v1.0 -m "版本說明"
創建附注標簽。git push origin --tags
推送所有標簽到遠程倉庫。
9. 配置相關
git config --global user.name "姓名"
設置全局用戶名。git config --global user.email "郵箱"
設置全局郵箱。git config --list
查看當前配置。
常用場景示例
-
首次推送本地項目到遠程倉庫
git init git add . git commit -m "Initial commit" git remote add origin <repo-url> git push -u origin main
-
修復提交信息
git commit --amend -m "新的提交信息"
-
合并分支并解決沖突
git checkout main git merge feature-branch # 手動解決沖突后 git add . git commit
掌握這些命令可以應對 90% 的日常 Git 操作。更復雜的用法(如 rebase -i
、子模塊等)可查閱 Git 官方文檔。