【Git系列】Git常用命令的使用

前言

本文章描述Git常用命令的使用。

常用命令

配置git环境

git config

git config --global user.name

配置用户名

git config --global user.name "xxx"

xxx是用户名,例如"Ming Li"

git config --global user.email

配置邮箱

git config --global user.email "xxx@xxx.com"

xxx@xxx.com是邮箱。

git config --global core.editor

配置编辑器

git config --global core.editor vi

配置git默认编辑使用vi
在这里插入图片描述

配置vi行长度提示
vi ~/.vimrc
set colorcolumn=72

72是提示行字符数,可按实际需求更改。
如下图,vi打开文件编辑时,会有提示。
在这里插入图片描述

git config --global http.proxy

配置http代理

git config --global http.proxy 'http://xxx.com:8080'
git config --global http.sslverify

配置http ssl校验开关

git config --global http.sslverify false
git config --global --unset http.proxy

取消http代理配置

git config --global https.proxy

配置https代理

git config --global https.proxy 'https://xxx.com:8080'
git config --global https.sslverify

配置https ssl校验开关

git config --global https.sslverify false
git config --global --unset https.proxy

取消https代理配置

建立代码仓

git init

初始化当前目录为代码仓,初始化后会将当前仓库设置为master。

# 创建目录
mkdir test
# 进入目录
cd test
# 初始化仓库
git init

在这里插入图片描述

git clone

将远程仓库关联到本地,例如

git clone https://github.com/openbmc/openbmc.git

在这里插入图片描述

git fetch

拉取远程所有分支,该操作并不会合并。
在这里插入图片描述
可以拉去某一分支

git fetch xxx

也可以去拉某一分支的commit-id,方便cherry-pick

git fetch branch-name commit-id

git pull

下载更新更改,并直接合并HEAD。
在这里插入图片描述

git rebase

git rebase xxx

将当前的HEAD重新设置。
在这里插入图片描述

git rebase --abort

中止基准

git rebase --continue

解决冲突后继续进行基准

git rebase -i HEAD~n

修改前n次的提交信息。
在这里插入图片描述
修改之后结合git commit --amend和git rebase --continue使用。

代码分支

git branch

git branch

查看本地代码分支
在这里插入图片描述

git branch -a

查看本地和远程所有分支
在这里插入图片描述

git branch fix-xxx-issue

创建分支,但不会切到新建分支
在这里插入图片描述

git branch -m fix-xxx-issue fix-zzz-issue

修改分支名称
在这里插入图片描述

git branch -D fix-xxx-issue

删除分支
在这里插入图片描述

git checkout

git checkout fix-xxx-issue

切换分支
在这里插入图片描述

git checkout -b fix-yyy-issue

创建分支,并切换到该分支
在这里插入图片描述

git checkout -b fix-yyy-issue origin/fix-yyy-issue

同步远程分支,并创建切换到该分支

git remote

有时候远程分支已删除,但git branch -a查看删除分支本地还存在。

git remote show origin

查看远程仓库信息

git remote prune origin

刷新本地分支仓库

git remote -v

查看远程仓库地址

查看代码

git log

git log

查看代码合入记录
在这里插入图片描述

git log --oneline

单行显示合入记录
在这里插入图片描述

自定义git log

将~/./gitconfig文件配置alias可以自定义简化git log命令

[alias]
        log1=log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) %G? - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)'
git log1

在这里插入图片描述

git show

查看某一合入具体修改信息
在这里插入图片描述

git grep

根据合入关键词搜索相关代码。
在这里插入图片描述

修改代码

git status

查看当前目录代码状态
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述

git add

将修改的代码或新增的文件添加到缓存区。
在这里插入图片描述
在这里插入图片描述

git diff

查看代码修改详情。

git diff

添加缓存前:

git diff

在这里插入图片描述
可以保存diff文件

git diff > xxx.diff
git diff --cached

添加缓存后:

git diff --cached

在这里插入图片描述

git reflog

该命令用于恢复误删除的commit或者分支。
查看操作记录命令:

git reflog show

获取到hash id之后,可以使用git reset 命令恢复

git reset --hard id

如果此时还需要某个commit,可以再结合git cherry-pick命令

git cherry-pick commit-id

git am

该命令可以将patch文件打到当前代码中,commit到当前分支,并且保留补丁文件中的作者和提交信息。
支持diff、patch格式文件。

git am --rej xxx.patch

git apply

该命令可以将patch文件打到当前代码中,但不会commit。
支持diff、patch格式文件。

git apply --rej xxx.diff

git rm

移除文件

rm

添加缓存前,直接rm命令删除即可,无需使用git命令。

rm test.txt
git rm

添加缓存后

git rm --cached

该命令只是将文件从缓存中移除,文件实际上未被删除。
在这里插入图片描述

git rm -f

该命令是将文件从缓存中移除,并将文件彻底删除。
在这里插入图片描述

git stash

在你当前工作区修改了文件或者其它功能时,你想要切换或者创建到其它分区是不可能的。

git stash

保存当前工作状态。

git stash list

查看当前存储了多少工作状态。

git stash pop

切换回刚刚的分支,然后在刚刚的分支中将状态恢复。

git stash show

查看栈中最新保存的stash和当前目录的差异。

提交代码

git commit

提交代码,一般提交都需要描述提交信息,比如,实现什么功能,解决什么bug。

git commit -s

在这里插入图片描述

git commit -m
git commit -m "fix xxx issue."
git commit --amend

仅修改描述信息。

git merge

切换至master后,将fix-yyy-issue修改合并到master分支。

git merge fix-yyy-issue

git format-patch -n

根据最近n条commit生成patch。
在这里插入图片描述

git push

将本地分支提交到远程仓库

git push --set-upstream origin fix-xxx-issue

远程仓库该分支不存在:

git push --set-upstream origin fix-xxx-issue

在这里插入图片描述

git push origin fix-xxx-issue --force

远程仓库该分支存在,需要更新:

git push origin fix-xxx-issue --force

在这里插入图片描述

git push origin --delete fix-xxx-issue

删除远程仓库该分支

git push origin --delete fix-xxx-issue

git cherry-pick

将某一分支的代码合并到本分支。

git archive

回退代码

git restore

git restore

若该修改还未添加缓存,则该命令是将修改回退。

git restore

在这里插入图片描述

git restore --staged

若该修改已添加缓存,则该命令是将修改从缓存中回退,实际文件代码并未回退。

git restore --staged

在这里插入图片描述

git reset

git reset

等价于

git reset –mixed

重置所有缓存区操作,缓存区的文件会变为未缓存状态,文件修改依然存在。
在这里插入图片描述

git reset --hard

将HEAD指针重置为上一次提交,并丢弃此后的所有更改。
在这里插入图片描述

git reset --hard HEAD

放弃工作目录中的所有本地更改。

git reset --hard HEAD~n

回退至前n个版本。

git reset --hard commit_id

回退至commit_id的版本。

git reset –soft

将HEAD指针重置为上一次提交,并保留未提交的本地更改,依旧存在缓存区中。
在这里插入图片描述

git revert

通过产生具有相反更改的新提交来实现代码回退。

  • 21
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值