git常用命令汇总

config信息配置

git查看一些配置

git config --list
git config -l

git查看全局配置

git config --global --list
git config --global --l

通过添加具体项查看具体配置,如下:

git 查看全局用户名

git config --global user.name

git 查看全局用户邮箱

git config --global user.email

git 修改全局用户名

<userName>是新的用户名

 git config --global user.name <userName>

git 修改全局邮箱

<userEmail>是新邮箱地址

git config --global user.email <userEmail>

克隆项目

git克隆远端项目

<projectUrl>是项目地址

git clone <projectUrl>

分支操作

git查看本地分支

git branch

git查看所有分支

git branch -a

git创建分支

<branchName>是分支名字,下同。

git branch <branchName>

git切换分支

git checkout <branchName>
git switch <branchName>

git创建并切换分支

git checkout -b <branchName>
git switch -c <branchName>

git推送本地分支到远端

git push origin <branchName>
git push --set-upstream origin <branchName>

git检出远端分支到本地

git checkout -b <localBName> <remoteBName>

git删除本地分支

不可在当前分支上删除当前分支

git branch -d <branchName>

git删除远端分支

git push origin --delete <branchName>

文件操作

git查看文件状态

git status

git丢弃工作区所有修改

git checkout .
git restore .

git将工作区所有修改提交到暂存区

git add .
git add --all

git 将暂存区所有修改恢复到工作区

git reset HEAD

git提交暂存区文件到本地仓库

git commit -m <注释>

git查看提交详情

<commitId>是该次提交的id,可在提交日志中查到,见下文代码日志

git show <commitId>

git推送本地仓库到远端

git push

git 拉取远端代码

git fetch

git合并分支

合并<branchName>分支代码到当前分支

git merge <branchName>

git拉取远端代码到本地并执行merge

git pull

git pull = git fetch + git merge当在master分支执行git pull的时候,相当于在master分支执行git fetch 然后执行git merge origin/master

代码日志

git打印操作记录

可以查看所有分支的所有操作记录,包括commit和reset的操作,包括已经被删除的commit记录。

git reflog

git打印提交记录

git log
git log --oneline        // 将log信息简化为一行

如图1所示,第一行id是1fd5003,存在于本地仓库,还未提交到远程;第二行id是 92196d3 已经提交到远程仓库。下文用<commitId>代表该次提交id
图:1-1

代码回退

git soft回退

回退代码到的那次提交,将该commitId之后提交的代码恢复到暂存区

git reset --soft <commitId>

所以可以使用命令 git reset --soft 92196d3 来恢复92196d3之后的代码到暂存区,使得代码回退到 92196d3那次的提交状态。

git mixed回退

回退代码到<commitId>的那次提交,将该<commitId>之后提交的代码恢复到工作区

git reset --mixed <commitId>

git hard 回退

退代码到<commitId>的那次提交,丢弃<commitId>之后的所有提交代码。

git reset --hard <commitId>

在开发过程中,如果提交了本地仓库还未push,需要撤销本地仓库的提交,如图 1状态所示,可以省去git log查找<commitId>的时间,直接使用远端分支名回退本地仓库代码到暂存区或工作区,或者直接丢弃和远端分支保持一致。

git reset --soft origin/master
git reset --mixed origin/master
git reset --hard origin/master

当前分支应用指定提交

git cherry-pick合并指定提交代码

相比于git merge将一个分支的所有变动,合并到另一个分支,cherry-pick可以将一个分支的某一个或几个提交合并到另一个分支上。

git cherry-pick <commitId>

假如有俩种场景:

场景1:俩个不同的功能分支,第二个分支需要用到第一个分支的某次提交,就可以在第一个分支使用git log查询到需要应用到第二个分支上的<commitId>,再切换到第二个分支,使用cherry-pick<commitId> 实现第一个分支的这次提交应用到第二个分支上。

场景2:假如在这一个分支上开发完了功能,准备提交,发现开发错分支了,应该是在另一个分支上开发,这时候只需要将这个分支的修改代码commit但是不push,git log 记录下此次提交的,切换到另一个分支上,使用cherry-pick实现该合并到本分支,再切回开发错的分支丢弃掉开发的代码,就可以实现代码的转移了。

保存进度

git保存当前工作进度

保存当前工作进度,会把暂存区和工作区的改动保存起来,执行完这个命令后,当前工作区变成一个干净的工作区,没有任何改动。

git stash

git显示保存进度的列表

git stash list

git 恢复最新的进度到工作区

默认会把工作区和暂存区的改动都恢复到工作区。

git stash pop   //会删除已恢复的进度
git stash apply   //不会删除已恢复的进度

git恢复最新的进度到工作区和暂存区

尝试将原来暂存区的改动还恢复到暂存区

git stash pop --index   //会删除已恢复的进度
git stash apply --index   //不会删除已恢复的进度

git恢复指定的进度到工作区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EgfljOXX-1623263366413)(C:\Users\ShuangboDong\Desktop\img\image-20210610021418031.png)]
<stashId>是通过git stash list命令得到的,如图2所示,0和1都是<stashId>

git stash pop <stashId>   //会删除已恢复的进度
git stash apply <stashId>   //不会删除已恢复的进度

git删除存储进度

git stash drop    //删除最新的存储进度
git stash drop <stashId>   //删除指定的存储进度
git stash clear   // 删除所有存储的进度。

使用场景:假如正在一个分支开发代码,需要临时切换分支处理问题,希望处理完另一个分支的问题提交后,再切回原来的开发分支继续进行开发。

多分支同步开发

如果需要同时运行俩个分支的代码,之前的办法是克隆多个仓库,现在 git worktree可以解决这个问题,实现一个 git 仓库连接多个工作目录,进行同步开发。

基于<branch>分支新建一个路径是 <path>的目录

git worktree add <path> <branch>

列出当前仓库已经存在的所有 worktree 的详细情况

git worktree list

清除 worktree 的信息

使用完直接删除关联目录就好,在删除 worktree 的关联目录之后,清除 worktree 的信息。从而使一个 worktree 完整的删除。

git worktree prune
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值