【Linux】Git使用手册 常用指令总结

三个区域

工作区、暂存区、版本库

在这里插入图片描述

基本操作

个人信息配置
git config --global user.email "UserName@example.com"   #设置全局用户名
git config --global user.name "UserName"   #设置全局邮箱地址

执行一次即可,信息记录在~/.gitconfig文件中

git对一个目录进行版本控制
  • 进入文件夹
  • 执行初始化命令,将当前目录目录配置成git仓库,信息记录在.git文件夹中
git init
  • 查看管理目录下的文件状态
git status

新增文件和修改过的文件是红色

  • 将指定文件放入暂存区(红变绿)
git add filename 
git add . #当前目录所有待加入暂存区文件
  • 生成版本,将暂存区的内容提交到分支
git commit -m 'details'  #-m注释参数
  • 查看XX文件相对于暂存区修改了哪些内容
git diff filename
  • 查看当前分支的所有版本
git log
  • 查看head指针的移动历史
git relog
  • 回滚
git reset --hard HEAD^    #回滚一次
git reset --hard HEAD~    #回滚一次
git reset --hard HEAD^^   #回滚两次
git reset --hard HEAD~100    #回滚100次
git reset --hard 版本号    #回滚到特定版本
  • 将XX文件尚未加入暂存区的修改全部撤销
git checkout -- filename
git checkout . #全部撤销
git restore filename
  • 将在暂存区的指定文件放回工作区
git restore --stage filename
  • 记录图形展示
git log --graph --pretty=format:"%h %s"

用树展示版本结构

远程仓库配置

  • 将本地仓库关联到远程仓库
git remote add origin Servername@IP:Directory/xxx.git

origin后面的是远程仓库地址 比如 git@github.com:Genevieve_xiao/program.git
这条命令本身的框架其实是

git remote add <shortname> <url> 

一般来讲我们都将<shortname>写成origin,而<url>才是仓库唯一的地址。
这条命令也就是让远程仓库的唯一url映射成本地仓库对它起的别名shortname,这样就方便之后的命令不用每次都输入一遍很长的url,而是直接用origin代替就可以了。

  • 将远程仓库克隆到当前目录下
git clone Servername@IP:Directory/xxx.git

这条指令不同于git pull的地方在于:clone是在一个没有本地版本库的设备,从云端下载一个完整的版本库,是一个从无到有的过程;而pull只是在有本地版本库的情况下,从云端拉去最新版本的commit。

分支

本地分支
  • 创建新分支
git branch branch_name
  • 切换到新分支
git checkout branch_name
  • 创建并切换到新分支
git checkout -b branch_name
  • 查看所有分支和当前所处分支
git branch
  • 将指定分支合并到当前分支上 注意顺序
git merge branch_name
  • 删除分支
git branch -d branch_name
远程分支

远程仓库和本地仓库其实是两个相对独立的系统,分支与分支之间其实也相对独立。
所以其实本地仓库的分支和远程仓库的分支的名称不一定相同,合并分支时也不一定非要是两个对应的分支。
同样的,本地仓库新建一个分支的时候,远程仓库并不会自动同步创建,而是需要在远程新建一个分支然后再将两个分支对应起来;或者在设置好本地分支的同时对应到远程仓库

  • 将当前分支推送到远程仓库
git push -u

(只有第一次推送需要-u 之后推送不需要)

  • 将本地的某个指定分支推送到远程仓库
git push origin branch_name

执行这条指令的前提是远程仓库已存在对应分支,否则就会弹出提示我们使用以下这条指令:

  • 设置本地的分支对应远程仓库的分支(同时在远程新建该分支)
git push --set-upstream origin branch_name

这条指令就可以在本地已经创建好新分支,但是远程仓库还不存在对应分支的时候,在远程新建分支并上传

  • 将远程的branch_name1与本地的branch_name2对应
git push --set-upstream-to=origin/branch_name1 branch_name2

将远程的一条指定分支和本地的一条指定分支对应起来,注意顺序

  • 删除远程仓库的分支
git push -d origin branch_name
  • 将远程仓库的对应分支和本地仓库的当前分支拉取合并
git pull
  • 将远程仓库的指定分支branch_name和本地仓库的当前分支拉取合并
git pull origin branch_name

这时候不一定就是两个对应的分支

  • 将远程的分支拉取至本地
git checkout -t origin/branch_name

前面几条checkout的指令都是跟切换分支有关,其实这条也是切换分支,不过这条分支只存在于远程仓库而本地并不存在。实质就是,先将远程的指定分支拉取至本地,再切换到这个分支。

没有来得及保存版本的工作内容可以先存在栈里。

  • 将工作区和暂存区中尚未提交的修改存入栈中
git stash
  • 将栈顶储存的修改恢复到当前分支 同时删除栈顶元素
git stash apply
  • 将栈顶储存的修改恢复到当前分支 同时删除栈顶元素
git stash pop
  • 删除栈顶储存的修改
git stash drop
  • 查看栈中的所有元素
git stash list

总结

实际上一般在公司开发的时候,master分支主要是只用来保存发行版本的,所有的开发都在dev分支上完成,每个部门再在dev上的不同分支进行开发。
不过如果是一个人做项目的话,其实用不到那么多git上面的指令,最主要的就四个,pull add commit push。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值