git命令使用与repo常用命令
git命令
专有名词
- Repository: 仓库
包含项目所有文件且存储其修订历史记录 - Working tree: 工作树/区
工作内容所在的目录,修改的内容通过git-add命令添加到暂存区中 - Staging area: 暂存区
暂存工作区的内容,通过git-commit命令提交到仓库中,Index(索引)是暂存区的另一种术语 - Remote: 远程
托管于服务器上的仓库或分支版本 - Clone: 克隆
是指本地计算机上的仓库副本,或者是复制的操作 - Commit: 提交
提交或修订(Revision)是对一个或一组文件的更改提交到Remote仓库。Git通过SHA1算法创建唯一的ID,用于记录提交信息。 - Checkout: 检出
切换分支或还原工作树文件 - Pull,Push: 拉取和推送
拉取是指提取与合并更改,推送是指将提交的更改发送到Remote仓库 - Fork: 复刻
从上游仓库复刻属于用户的Git仓库副本 - Pull Request: 拉取请求
是请求仓库协作者拉取用户提交的仓库 - Merge: 合并
从一个分支提取更改并应用到另一个分支 - Merge Conflict: 合并冲突
合并的分支之间发生的差异(差异是指两个提交之间的更改或保存的更改之间的区别) - Branch: 分支
是仓库的平行版本,默认分支叫master或main - Lock: 锁
获得修改文件的专有权限 - HEAD: 头
当前活跃分支的游标,常指向当前选择的分支 - 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命令
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详细帮助
git命令使用与repo常用命令
https://blog.siantao.top/技术/计算机/软件/版本控制/git命令使用与repo常用命令/