Config
1 2 3 4
| git config --global user.name "name" git config --global user.email "email" # 查看 git config --global --list
|
init
clone
1
| git clone <repository-url>
|
add
1 2 3 4
| git add <file-name> # 添加所有更改文件 git add .
|
commit
合并
1 2
| git rebase -i git merge --squash
|
stash
1 2 3 4 5 6 7 8 9 10 11 12 13
| git stash -m "message" # 查看 git stash list # 应用 git stash apply # 应用并删除最新一个 git stash pop # 删除最新一个 git stash drop # 删除指定暂存的记录 $ git stash drop <stash@{0}> # 清空 git stash clear
|
查看
1 2 3 4 5
| # 状态 git status # 日志 git log git show
|
branch
1 2 3 4 5 6 7 8 9 10
| # 创建 git branch <branch-name> # 切换 git checkout <branch-name> # 创建并切换 git checkout -b <branch-name> # 删除,-D 强制删除 git branch -d <branch-name> # 删除远端 git push origin --delete <branch-name>
|
合并分支
命令 |
合并后的历史记录分支 |
解决冲突 |
是否产生新 commit |
git merge |
保留两条并行的线 |
会自动解决一些冲突 |
是 |
git rebase 变基 |
合并为一条线,更整洁 |
需要自己处理所有冲突 |
否 |
rebase 建议用于对自己 commit 的操作,避免修改别人的记录
相关命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| # merge 合并到当前分支 git merge <source-branch> # 合并冲突时,可以执行这个命令放弃本次 merge git merge --abort # 合并 commit,后续还有复杂的操作 git merge --squash
# rebase 将当前分支的所有提交移动到另一个分支的顶部 git rebase <target-branch> # 解决冲突并继续变基 git add <resolved-file> git rebase --continue # 跳过当前冲突的提交并继续变基 git rebase --skip # 中断或取消变基 git rebase --abort # 合并 commit,后续还有复杂的操作 git rebase -i #将特定的提交应用到当前分支 git cherry-pick <commit-hash>
|
添加远程仓库
1 2
| git remote add origin <repository-url>
|
拉代码
1 2 3 4
| # 不自动合并 git fetch # 自动合并 git pull
|
push
1 2 3 4 5 6
| git push # 强制推送到远端,可能会覆盖或删除一些 commit git push -f # 推送本地分支到远程仓库并绑定 git push --set-upstream origin <your-local-branch> git push -u origin <your-local-branch>
|
回滚
1 2 3 4 5
| # 删除已有的 commit git reset --soft <commit-hash> git reset --hard <commit-hash> # 保留已有的 commit git revert <commit-hash>
|