看一遍学不会Git,你打我


Git —— 大名鼎鼎的分布式版本控制系统,据说是Linux系统之父Linus花两周时间写出来的,怎一个牛字了得。
写过代码的人大都知道它,以写代码为生的人大都离不开它。
官方文档实在太难用,这里参考大佬 廖雪峰的教程,把常用命令总结写两下来,以供自己和一起搬砖的朋友备查。

这里先介绍本地仓库的常用命令,再介绍涉及远程仓库和分支管理的常用命令。本文没有实例介绍讲解,只做命令备查。如需详细教程,请参考廖雪峰的Git教程

本文同步发在我的个人博客KK’s Notes,欢迎各位看官大佬关注指教。

1.基本操作

创建版本库并添加文件

进入到需要创建版本库的文件夹,执行以下命令

git init

git的本地库包含三部分:工作区、暂存区(stage)、分支(branch,默认为master),git add命令是将文件从工作区添加到暂存区,git commit命令是将文件从暂存区添加到分支,他们的关系如下图所示:

添加新文件或修改过的文件

git add file1_name file2_name file3_name ....
git commit -m '这里是对添加文件的说明'

查看版本库的状态

git status

分支管理

创建分支

git branch 分支名称

切换分支

git checkout 分支名称

创建并切换分支

git checkout -b 分支名称

删除本地分支

git branch -d 分支名称
git branch -D 分支名称 # 强制删除

删除远程分支

git push <remote_name> --delete 远程分支名称 # 大部分情况下<remote_name>为origin

查看所有分支

git branch    # 查看本地分支
git branch -a # 查看远程和本地所有分支
git branch -r # 查看远程分支

拉取远程分支并同时创建对应的本地分支

git checkout -b 本地分支名 origin/远程分支名  # 如失败,可以先git fetch

合并分支

git merge 准备与当前分支合并的分支名称

若merge出现冲突,解决办法请参考这里

stash功能
当在当前分支编辑内容时,没有add和commit就切换到其它分支,发现其它分支中也会出现相应更改,stash功能可以解决这个问题。如果出现这种情况,正在当前分支编辑,需要临时去其他分支处理一些事情,但是当前分支又不能add和commit,这时就需要stash功能,可以它就像一个icebox,能当前工作冻结。

git stash

查看冻结列表:

git stash list

想解冻2种方法:
第一种:解冻的同时把stash记录也删了,也就是在list中看不到了

git stash pop

第二种:解冻不删list中记录

git stash apply

想删记录:

git stash drop

2.时光穿梭

版本回退

当不断对文件进行修改,然后不断提交修改到版本库里,难免会出现失误,把文件改乱或出现其他错误,就需要回到上一次或者之前任一次提交的状态。
首先查看提交历史记录

git log

返回结果中commit 后面的十六进制数即为该次提交的commit id。
想返回结果简化一点:

git log --pretty=oneline

想看到merge情况

git log --graph

同样有简化板

git log --graph --pretty=oneline

回退到上一版本

git reset --hard head^

同理,回退到上上版本就是head^^,以此类推,当然往上100个版本写100个^比较容易数不过来,所以写成head~100.
也可以根据commit id回到该版本

git reset --hard [commit id前几位]

如果有20个版本,回退到第10个版本,但是后悔了,想回退到第15个版本,这是再去看提交历史记录,第11到20个版本的记录已经不在了,找不到commit id怎么办,可以用以下命令查到commit id前几位:

git reflog

撤销修改或删除

git checkout -- file_name

file_name即为想撤销修改或删除的文件名
使用以上命令分三种情况:
1.工作区文件自修改后还没有被放到暂存区,现在撤销修改就回到版本库中分支一样的状态;
2.工作区文件自修改后已经添加到暂存区后,又作了修改或者删除,现在撤销修改或删除就回到和暂存区一样的状态;
3.工作区文件自修改后已经commit到分支,又作了修改或者删除,现在撤销或修删除改就回到和分支一样的状态。

撤销暂存区的修改或删除:

git reset HEAD file_name

如果commit到了分支,直接版本回退吧

3.远程仓库

从远程仓库克隆:

git clone 地址

或者

git clone -b 分支名称 地址

将本地分支推送到远程库

git push origin 当前分支名称

将远程库拉取到本地分支

git pull origin 要拉取到分支名称

4.标签管理

给当前分支打标签

git tag 标签内容

指定commit id打标签

git tag 标签内容 commit id前几位

查看标签

git tag

查看标签详细情况

git tag 标签内容

删除标签

git tag -d 标签内容

推送一个本地标签

git push origin 标签内容

推送全部未推送过的本地标签

git push origin --tags

删除一个远程标签
现在本地删除:

git tag -d 标签内容

再执行:

git push origin :refs/tags/标签内容

好了,就这么多,如有错误望指出。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值