一、基础命令
| 命令 |
功能说明 |
git init |
初始化一个新的 Git 仓库 |
git log |
查看提交历史 |
git add [文件名] |
将文件添加到暂存区(git add . 添加所有修改) |
git commit -m "提交信息" |
提交暂存区的更改到本地仓库 |
git status |
查看当前仓库状态(修改、暂存、提交情况) |
git branch |
查看本地所有分支(git branch -a 查看本地+远程所有分支) |
git branch [分支名] |
创建本地新分支(基于当前分支) |
git checkout [分支名] |
切换到指定本地分支 |
git checkout -b [分支名] |
创建并切换到新分支(等价于 git branch + git checkout) |
git checkout -b [本地分支名] origin/[远程分支名] |
基于远程分支创建并切换本地分支 |
git branch -d [分支名] |
安全删除本地分支(已合并) |
git branch -D [分支名] |
强制删除本地分支(未合并) |
二、远程仓库管理
1. 添加/管理远程仓库
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git remote add origin [仓库地址]
git remote add origin https://github.com/用户名/仓库.git
git remote add origin git@github.com:用户名/仓库.git
git remote set-url origin [新地址]
git remote -v
|
2. 克隆仓库(含指定非主分支)
1 2 3 4 5 6 7 8 9 10 11 12
| git clone https://github.com/你的GitHub用户名/仓库名.git git clone git@github.com:你的GitHub用户名/仓库名.git
git clone git@github.com:用户名/仓库.git cd 仓库名 git checkout -b 目标分支名 origin/目标分支名
git clone -b 目标分支名 --single-branch git@github.com:用户名/仓库.git
|
三、分支核心操作(非主分支专属)
1. 非主分支的本地-远程同步
(1)非主分支的提交与推送
1 2 3 4 5 6 7 8 9 10 11 12 13
| git checkout dev
git add .
git commit -m "feat: 非主分支dev添加XX功能"
git push -u origin dev
git push origin dev
|
(2)非主分支的拉取同步
1 2 3 4 5 6 7 8
| git checkout dev git pull origin dev
git fetch origin git checkout dev git merge origin/dev
|
2. 分支切换常见问题与解决
(1)切换分支提示“未提交的更改会被覆盖”
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
git stash git checkout dev
git checkout -- . git checkout dev
git add . git commit -m "temp: 暂存当前修改" git checkout dev
|
(2)切换分支后代码未更新(detached HEAD 状态)
(3)本地无对应远程非主分支
1 2 3 4
|
git fetch origin git checkout -b dev origin/dev
|
四、多设备同步工作流(含非主分支)
核心逻辑
多台电脑共享远程仓库 → 非主分支修改后 git push 推送 → 其他设备 git pull 拉取非主分支最新内容
操作步骤
1. 新设备拉取远程非主分支
1 2 3 4 5 6 7
| git clone git@github.com:用户名/仓库.git cd 仓库名
git fetch origin git checkout -b dev origin/dev
|
2. 修改并推送非主分支代码
1 2 3 4 5 6 7 8 9
| git checkout dev
git add . git commit -m "fix: dev分支修复XX问题"
git push origin dev
|
3. 同步远程非主分支最新代码
1 2 3 4 5
| git checkout dev
git pull origin dev
|
五、SSH 配置与问题解决
核心步骤
确认密钥添加正确 → 配置 SSH 识别密钥 → 修复文件权限
1. 确认公钥添加到 GitHub
1 2 3 4
| cat ~/.ssh/id_rsa.pub
cat ~/.ssh/自定义密钥名.pub
|
- 复制完整文本(从
ssh-rsa 开头到邮箱结尾)
- GitHub → Settings → SSH and GPG keys → 添加新 Key
2. 配置 SSH 识别密钥
粘贴配置(根据实际情况修改):
1 2 3 4
| Host github.com HostName github.com User git IdentityFile C:/Users/你的用户名/.ssh/密钥文件名
|
路径使用 / 或 \\,例如:C:/Users/张三/.ssh/id_rsa
3. 修复密钥文件权限
1 2 3
| cd ~/.ssh chmod 600 密钥文件名 chmod 644 密钥文件名.pub
|
4. 测试连接
六、提交历史管理
1. 撤销错误提交
方法一:直接回退历史(个人仓库适用)
1 2 3 4 5 6 7 8
| git checkout dev
git reset --hard 92d433f
git push origin dev --force
|
方法二:创建撤销提交(多人协作适用)
1 2 3 4 5 6 7 8
| git checkout dev
git revert 0dec4f6
git push origin dev
|
后续操作
1 2 3
| git add . git commit -m "正确的提交信息" git push origin dev
|
2. 修复本地分支与远程分支偏离问题
问题原因
本地分支历史与远程分支历史不一致(本地包含远程已移除的提交)
解决步骤(非主分支)
1 2 3 4 5 6 7 8 9 10 11
| git checkout dev
git stash
git reset --hard origin/dev
git pull origin dev
|
七、高级分支同步技巧
1. 同步特定远程非主分支
1 2 3 4 5 6 7 8 9
| git fetch origin
git checkout -b dev origin/dev
git checkout dev git reset --hard origin/dev
|
2. 同步多个特定非主分支
1 2 3 4 5
| git fetch origin git checkout dev && git reset --hard origin/dev git checkout feature/user && git reset --hard origin/feature/user git checkout hotfix/order && git reset --hard origin/hotfix/order
|
3. 同步远程仓库的所有分支(含非主分支)
1 2 3 4 5 6 7 8 9 10
| git fetch --all
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git branch | grep -v "main" | xargs git branch -D git fetch --all git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
|
4. 重置远程非主分支到特定提交
1 2
| git push origin --force 0dec4f6:dev
|
5. 查看非主分支差异
1 2 3 4 5
| git log origin/dev..dev
git log dev..origin/dev
|
八、其他实用技巧
1. 暂存与恢复
1 2 3 4 5
| git stash git stash list git stash pop git stash pop stash@{n} git stash drop stash@{n}
|
2. 撤销修改
1 2
| git checkout -- 文件名 git checkout .
|
3. 提交历史查看
1 2 3 4 5
| git log -p git log --stat git log --graph --oneline --all git show 提交ID git add -p
|
4. 从远程非主分支拉取特定文件
1 2
| git checkout origin/dev -- src/utils.js
|
九、多仓库协作
1. 添加多个远程仓库
1 2 3 4 5 6 7 8
| git remote add upstream https://github.com/原作者/仓库.git
git remote add fork https://github.com/你的用户名/仓库.git
git remote -v
|
2. 从上游仓库拉取非主分支更新
1 2 3 4 5 6 7 8 9
| git fetch upstream
git checkout dev git merge upstream/dev
git rebase upstream/dev
|
3. 同步fork与上游仓库(非主分支)
1 2 3 4 5 6 7 8 9 10 11 12
| git remote add upstream https://github.com/原作者/仓库.git
git fetch upstream
git checkout dev git merge upstream/dev
git push fork dev
|