git常用命令汇总

一、Git基础

1. git概念

git是一种分布式版本控制工具,git本地有三个工作区域:工作目录(Working Directory),暂存区(Stage/index),本地仓库(Repository),除此之外,还有一个远程仓库(Remote Directory),总的来说可以分为四个工作区域。

2. Git执行流程图

二、常用命令

1. 安装git

 sudo yum install git -y

2. 查看版本

git --version

3. 删除git

sudo yum remove git -y

4. 配置用户名,密码和邮箱

java 复制代码
// 加 --global 是在所有本地仓库中都生效
git config  --global user.name "lkk"
git config  --global suer.password "123456"
git config  --global user.email "123456@126.com"

5. 查看所有配置

java 复制代码
git config -l

6. 查看用户设置的配置

git config --global -l

7. 删除配置

java 复制代码
git config --global --unset user.name
git config --global --unset user.password
git config --global --unset user.email

8. 本地搭建仓库

java 复制代码
// 1.创建一个文件
mkdir gitcode

// 2.进入该文件
cd gitcode

// 3.初始化
git init

// 执行成功后会有一个隐藏的.git文件
ls -a

9. 克隆远程仓库

java 复制代码
git clone https: ... .git

10. gitee生成公钥

  1. 首先在本地路径 c:/users/.. 下找到 .ssh 文件,打开git命令行,输入:
java 复制代码
ssh-keygen -t rsa
  1. 会生成如下两个文件,然后将公钥中的信息全部复制粘贴到gitee的指定位置

11. 创建(修改)文件并提交

java 复制代码
// 第一步 提交到暂存区
git add 文件名 
// 或者   
git add .

// 第二步 提交到本地仓库
git commit -m "消息内容"  

// 第三步 将本地仓库推送到远程仓库
git push origin 分支名称

12. 忽略文件

一个Java项目在提交的时候,有些文件不需要提交,可以进行设置,例如idea中有一个.gitignore文件。

示例

  • *.txt 忽略所有的以txt结尾的文件
  • !lib.txt 感叹号将不被忽略
  • /temp 往上忽略
  • build/ 忽略build/目录下的所有文件

13. 查看分支

java 复制代码
git branch

14. 创建分支

创建一个名为dev的分支

java 复制代码
git branch dev

15. 切换分支

默认是master分支,无论是默认master分支还是自定义分支,分支里存储的都是各自最新一次提交的commitID。

java 复制代码
git checkout dev     // 切换到dev分支

创建并切换到新的分支上,一步完成

java 复制代码
git checkout -b dev  // 创建dev分支并且切换到dev分支上

16. 合并分支

java 复制代码
// 如下在将dev分支合并到master分支,首先得切换到master分支上
git merge dev

解决合并冲突(原因是在创建分支之后,新的分支做了修改,并且原分支也进行了修改),需要手动解决(手动找到修改的地方,并根据情况是删除哪部分,保留哪部分),并进行一次提交(add+commit)操作。

17.删除分支

java 复制代码
// 如下 删除dev分支
git branch -d dev 

18.查看 git 状态

java 复制代码
git status
git status [filename]

如下提示是我们修改了test文件内容,但是没有add和commit,文件处于工作区中

接下来先进行add,然后查看状态,这次又换了提示,是test文件还没有commit,文件处于暂存区中,提示我们去commit操作。

这次再查看git的状态,文件已经提交到本地仓库中了,表示文件已经提交成功了。

19. 查看所有提交记录日志

java 复制代码
git log
git log --pretty=oneline // 一行输出

20. 查看本地提交记录日志

java 复制代码
git reflog

如上,最左边的id也可以用来回退。 这个指令可以看到已经删除的提交记录。

21. 根据commitId查看提交记录

java 复制代码
git cat-file -p 17434ff51b2f29fade5cc58ff3db639fc69efd10

22. 查看文件修改前后变化

已经提交 (commit) 的看不了,可查看修改但还未 commit 的

java 复制代码
git diff test //test为文件名 减号表示修改前 加号表示修改后

23. 版本回退

java 复制代码
// 1.先找到要回退的版本 commit id 例如17434ff51b2f29fade5cc58ff3db639fc69efd10
git log --pretty=oneline

// 2.再回退版本
git reset --hard 17434ff51b2f29fade5cc58ff3db639fc69efd10

24. 撤销修改的三种场景

  • 24.1 已经修改,但还未add,即修改的内容只是在工作区中
java 复制代码
git checkout -- 文件名
  • 24.2 已经修改和add,但还未commit,即修改的内容在工作区和暂存区中了
java 复制代码
//需要两步:
// 第一步 回退到当前版本,并删除暂存区中的内容
git reset head 文件名

// 第二步 删除工作区中的内容
git checkout -- 文件名


//工作区  就是我只vim修改了文件内容或者添加删除文件
//暂存区  就是修改之后还进行了add操作
//版本库  就是最终进行了提交commit操作
//远程仓库 进行了push操作
  • 24.3 已经add和commit,即修改的内容已经在版本库中了
java 复制代码
git reset head^ 文件名 //^表示上一个版本  ^^表示上上一个版本

25. 以提交线的形式打印各个分支的操作情况

java 复制代码
git log --graph --abbrev-commit

但是上面这种不能看出每次操作到底是master提交的,还是merge的。如下合并语句可解决:

java 复制代码
git merge --no-ff -m "merge dev" dev // 合并dev分支

修改别名 指令太长不好记忆时

java 复制代码
git log --pretty=oneline --all --graph --abbrev-commit
相关推荐
T0uken2 小时前
【Git】远程仓库操作
大数据·git
萌狼蓝天8 小时前
git恢复到之前提交的记录
git
是程序喵呀8 小时前
git的基本使用
大数据·git
a未来永远是个未知数8 小时前
构建机部署之git安装(Linux)
linux·git·elasticsearch
丁总学Java8 小时前
命令行运行git reflog(reference log)报错的解决办法
git·reference·log·reflog
右璇14 小时前
Git 常用命令备忘
git
小鹿( ﹡ˆoˆ﹡ )18 小时前
Git使用简介及相关命令
git
Marvin-Fox19 小时前
GIT 使用相关技巧记录
git
不想步入秃头的年龄1 天前
Git学习(常用的一些命令)
git·学习
pcdd1 天前
【Git】取消追踪多个文件或目录
git