『总结』 GIT 常用命令
『总结』 GIT 常用命令
楊遠徵GIT 常用命令
代码仓库
创建仓库
进入需要创建代码库的文件夹
cd 文件路径
创建 / 初始化仓库
git init
拉取远程仓库到本地
git clone
添加文件到仓库
添加文件到暂存区
添加单个文件
git add 文件名
添加所有文件
git add .
添加的过程中需注意以下两点:
- .gitignore 中指定的文件会被忽略
- 空目录不会添加
提交到本地仓库
git commit
填写commit message
并保存不建议使用
git commit -m "commit message"
,建议提交遵循 commit message 规范查看工作区状态
git status
对比工作区文件变化
git diff
建议将 beyond compare 配置为 diff 工具,用于 diff 以及 merge 冲突。
仓库配置
配置全局用户名和邮箱
个人开发机配置:
git config --global user.name "[name]"
git config --global user.email "[email address]"
配置当前用户:
git config user.name “\[name\]”
git config user.email “\[email address\]”
代码版本 / 提交切换
注:这里的版本均为本地仓库版本
查看过去版本 / 提交
提交详情
git log
提交简介
git log --pretty=oneline
回退版本 / 提交
回退到当前最新提交
git reset --hard HEAD
回退到上次提交
git reset --hard HEAD^
回退到上 n 次提交
git reset --hard HEAD~n
回退到某次提交
git reset --hard commitid
重返未来版本
查看历史提交以及被回退的提交 (查看所有分支的所有操作记录)
git reflog
注意:该记录有时限,且只在本地
回到未来版本
git reset --hard commitid
撤销修改
工作区文件撤销 (没有提交到暂存区 / 没有 git add)
撤销修改:
git checkout 文件名
暂存区文件撤销
将暂存区文件撤销到工作区:
git reset HEAD 文件不带--hard
提交到了版本库
删除文件
删除文件从版本库中删除文件
git rm 文件名
修改后需要提交
恢复删除
参见撤销修改
从版本库中删除文件,但是本地不删除该文件
git rm --cached 文件名
重命名文件
将文件 / 文件夹重命名
git mv
暂存修改
参见下面分支 - 暂存修改
忽略文件
通过 git 仓库下的 .gitignore 文件屏蔽某些中间文件 / 生成文件
分支
创建与合并分支
创建分支
仅创建分支
git branch 分支名
创建并切换
git checkout -b 分支名
注:在本地仓库操作,创建的都是本地分支
切换分支
git checkout 分支名
git switch
早期版本不支持,需使用最新版的 git
合并分支
合并某分支到当前分支:
git merge 分支名
注意:合并分支时禁用 fast forward:
git merge --no-ff 分支名
git rebase
若无特殊需要不建议使用
删除分支
删除本地分支
- 删除未合并分支:
git branch -D 分支名
- 删除已合并分支:
git branch -d 分支名
- 删除未合并分支:
删除远程分支
git push origin -d 分支名
git push <远程仓库名> -d 分支名
建议界面操作
查看分支
- 查看当前分支:
git branch
- 查看所有分支信息:
git branch -a
本地分支为本地分支名;远程分支为
<远程仓库名>/分支名
- 查看当前分支:
合并分支,解决分支冲突
- 将要合并的分支更新到最新
- 切换到主分支
- 合并分支
- 解决合并时的 conflict
- 提交到版本库
- 合并成功
- 查看分支状态
git log --graph
git log --graph --pretty=oneline --abbrey-commit
开发完需要提交 PR/MR
通过 PR/MR 来合并开发分支与主分支
暂存修改
暂存工作现场
git stash
恢复工作现场
- 恢复:
git stash apply
- 删除:
git stash drop
- 恢复 + 删除:
git stash pop
- 恢复:
多人协作
建议开发遵循或者参照 git 标准工作流,比如 git flow、github flow 或者 gitlab flow
查看远程仓库信息
- 详细:
git remote -v
- 不详细:
git remote
- 详细:
更新/推送远程库
更新远程库信息:
git fetch
将远程库最新修改更新到本地:
git pull
git pull
可以认为是git fetch
+git merge
将本地修改推送到远程库
git push
git push origin 分支名
本地分支与远程分支交互
使用远程分支 A 创建本地分支:
git checkout -b A origin/A
origin 是远程仓库名,若名字一样 origin/A 可以省略
将本地分支与远程分支作关联:
git branch --set-upstream A origin/A
提示 no tracking information 错误
代码版本 tag
tag 与 branch 的操作基本一致,因为 tag 就是一个仅可读的 branch
查看 tag
本地 tag
git tag
远程 tag
git tag -r
操作 tag
添加 tag
- 给当前版本添加 tag:
git tag 标签名
- 给历史版本添加 tag:
git tag 标签名 commitid
- 给当前版本添加 tag:
删除 tag
- 删除本地标签:
git tag -d 标签名
- 删除远程标签:
git push origin -d 标签名
- 删除本地标签:
推送到远端仓库
- 推送单个 tag:
git push origin 标签名
- 推送所有未提交的 tag:
git push origin --tags
- 推送单个 tag:
更新到本地
git pull origin --tags
其他命令
其他不常使用的指令可通过 git help
查看,也可使用 git help -a
查看当前 git 可用的所有命令