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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值