git命令使用与repo常用命令

git命令

Git Reference
Git备忘单

专有名词

git代码提交流程
  1. Repository: 仓库
    包含项目所有文件且存储其修订历史记录
  2. Working tree: 工作树/区
    工作内容所在的目录,修改的内容通过git-add命令添加到暂存区中
  3. Staging area: 暂存区
    暂存工作区的内容,通过git-commit命令提交到仓库中,Index(索引)是暂存区的另一种术语
  4. Remote: 远程
    托管于服务器上的仓库或分支版本
  5. Clone: 克隆
    是指本地计算机上的仓库副本,或者是复制的操作
  6. Commit: 提交
    提交或修订(Revision)是对一个或一组文件的更改提交到Remote仓库。Git通过SHA1算法创建唯一的ID,用于记录提交信息。
  7. Checkout: 检出
    切换分支或还原工作树文件
  8. Pull,Push: 拉取和推送
    拉取是指提取与合并更改,推送是指将提交的更改发送到Remote仓库
  9. Fork: 复刻
    从上游仓库复刻属于用户的Git仓库副本
  10. Pull Request: 拉取请求
    是请求仓库协作者拉取用户提交的仓库
  11. Merge: 合并
    从一个分支提取更改并应用到另一个分支
  12. Merge Conflict: 合并冲突
    合并的分支之间发生的差异(差异是指两个提交之间的更改或保存的更改之间的区别)
  13. Branch: 分支
    是仓库的平行版本,默认分支叫master或main
  14. Lock: 锁
    获得修改文件的专有权限
  15. HEAD: 头
    当前活跃分支的游标,常指向当前选择的分支
  16. Tags: 标记
    是Git版本库的一个标记,指某个分支某个特定时间点的状态

常用git命令

新建

  • git init
    在当前目录新建一个Git代码库
  • git init [项目名][1]
    新建一个目录,将其初始化为Git代码库
  • git clone URL路径
    下载(克隆)一个Git代码库到本地
  • git submodule add 子模块URL 模块路径
    新建一个子模块并克隆到本地

配置

Git的配置文件为".gitconfig",可在用户主目录下(全局配置),也可在项目目录下(项目配置)。

  • git config --list
    显示当前的Git配置
  • git config -e [--global]
    编辑Git的配置文件
  • git config [--global] user.name "用户名"
    设置提交代码时的用户名
  • git config [--global] user.email "邮件地址"
    设置提交代码时的邮件地址
  • git config --global --unset http.proxy
    删除Git的proxy(代理)配置
  • git config --global color.ui [true|false][2]
    是否启用默认的颜色设置
  • git config --global color.status auto
    设置git-status(是否使用status颜色输出)的输出颜色为自动
  • git config --global color.diff auto
    设置git-diff(是否使用ANSI转义序列为补丁着色)的输出颜色为自动
  • git config --global color.branch auto
    设置git-branch(使用自定义颜色进行分支着色)的输出颜色为自动
  • git config --global color.interactive auto
    设置git-interactive(交互式提示和显示)的输出颜色为自动

修改

  • git add [文件] ...[3]
    添加文件或目录(包括子目录)到暂存区
  • gid add .
    添加当前目录的所有文件到暂存区
  • git add -p ...
    以交互式在暂存区和工作树之间选择补丁并添加到暂存区中
  • git add -e ...
    在编辑器中打开与暂存区的差异,让用户编辑後应用于暂存区。
  • git add -i ...
    以交互方式将工作树中修改的内容添加到暂存区中
  • git rm [文件] ...
    删除工作树和暂存区的文件
  • git rm --cached [文件]
    删除暂存区已缓存的文件,但保留工作树文件
  • git mv [原名] [新名]
    重命名(移动)工作树和暂存区的文件

提交

  • git commit -m [消息]
    使用指定消息作为提交消息
  • git commit [文件] ...
    将暂存区的指定文件提交到远程仓库
  • git commit -a
    提交工作区已修改和删除的文件,但未被跟踪的文件(新建文件)不受影响
  • git commit -v
    提交时显示所有差异信息
  • git commit -p
    以交互式补丁选择界面选择要提交的更改
  • git commit --amend ...
    使用一次新的提交,替代上一次提交

分支

  • git branch
    列出所有本地分支
  • git branch -r
    列出所有远程分支
  • git branch -a
    列出所有本地和远程分支
  • git branch [分支]
    新建分支,但不切换分支
  • git branch [分支] [提交]
    新建分支并指向指定提交
  • git branch --set-upstream [分支] [远程分支]
    现有分支与远程分支建立追踪关系
  • git branch --track [分支] [远程分支]
    新建分支并与远程分支建立追踪关系
  • git chechout [分支]
    切换分支并更新工作区
  • git checkout -b [分支]
    新建分支并切换
  • git checkout -
    切换到上一个分支
  • git checkout -b [分支] [远程分支]
    从远程分支创建本地分支并检出
  • git merge [分支]
    合并指定分支到当前分支
  • git cherry-pick [提交]
    将提交合并到当前分支
  • git branch -d [分支]
    删除分支
  • git branch -dr [远程分支]
    删除远程分支

标记

  • git tag
    列出所有标记
  • git tag [标记]
    在当前提交新建标记
  • git tag [标记] [提交]
    在指定提交新建标记
  • git tag -d [标记]
    删除本地标记
  • git push origin --delete [标记]
    删除远程标记
  • git show [标记]
    查看标记信息
  • git push [远程] [标记]
    推送指定标记
  • git push [远程] --tags
    推送所有标记
  • git checkout -b [分支] [标记]
    新建分支指向标记

查看信息

  • git status
    显示有变更的文件
  • git log
    显示当前分支的版本历史
  • git log --stat
    显示提交历史以及每次提交发生的变更
  • git log -S [关键字]
    根据关键字搜索提交历史
  • git log [标记] HEAD --pretty=format:%s
    显示某个标记(提交)之後的所有变动,每个提交占一行
  • git log --follow [文件]
    显示某个文件的版本历史,包括文件名
  • git log -p [文件]
    显示指定文件的每一次提交差异
  • git diff
    显示暂存区和工作区的差异
  • git diff --cacehd [文件]
    显示暂存区和上一个提交的差异
  • git diff HEAD
    显示工作区与当前分支最新提交的差异
  • git diff [第一个] [第二个]
    显示两次提交之间的差异
  • git show [提交]
    显示某次提交的元数据和内容变化
  • git reflog
    显示当前分支的最近几次提交

远程同步

  • git fetch [远程]
    下载远程仓库的所有变动
  • git remote -v
    显示所有远程仓库
  • git remote show [远程]
    显示某个远程仓库的信息
  • git remote add [仓库名]
    增加一个新的远程仓库,并命名
  • git pull [远程] [分支]
    拉取远程仓库并与本地分支合并
  • git push [远程] [分支]
    推送本地分支到远程仓库
  • git push [远程] --force
    强行推送当前分支到远程仓库
  • git push [远程] --all
    推送所有分支到远程仓库

撤销

  • git checkout [文件]
    恢复暂存区的指定文件到工作区
  • git checkout [提交] [文件]
    恢复某个提交指定文件到暂存区和工作区
  • git checkout .
    恢复暂存区所有文件到工作区
  • git reset [文件]
    重置暂存区指定文件(与上一次提交一致)但工作区不变
  • git reset --hard
    重置暂存区与工作区指定文件(与上一次提交一致)
  • git reset [提交]
    重置当前分支指针为指定提交,同时重置暂存区而工作区不变
  • git revert [提交]
    还原当前分支指针为指定提交
  • git stash
    把本地修改并且未提交的内容,存储到本地栈中的栈顶
  • git stash pop
    把之前stash到本地栈中的代码pop到本地

其他git命令

详见:Git Reference

repo常用命令

  • repo init -u URL -b [分支]
    初始化repo
  • repo upload
    将代码提交到gerrit
  • repo abandon [分支]
    放弃分支
  • repo forall -c "git reset --hard HEAD"
    所有代码执行git命令,回退到HEAD
  • repo sync
    同步repo,远程仓库与本地同步
  • repo start [分支] --all
    创建新分支

查询常用命令

  • repo
    简要repo帮助,可用于测试repo是否初始化
  • repo help [命令]
    repo详细帮助
  • git help [命令]
    git详细帮助
  1. 这里用方括号做命令可选项
  2. '|'字符代表选择其一
  3. 三个句点代表省略参数

git命令使用与repo常用命令
https://blog.siantao.top/技术/计算机/软件/版本控制/git命令使用与repo常用命令/
作者
玉水仙楊
发布于
2022年4月1日
许可协议