Git备忘录

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git备忘录相关的知识,希望对你有一定的参考价值。

目录

理论部分

操作部分

基本命令

进阶命令

远程仓库


理论部分

集中式和分布式的本质区别是,用户本地是否有完整的版本控制历史,如果中央服务器宕机(没错,Git也有中央服务器,只不过不是必不可少),还能否回滚。

所有的版本控制系统都只能跟踪文本文件的变动,比如第x行多了一个y,但是对于二进制文件,并不知道具体变动,比如一张图片压缩以后大小减了,怎么变的就不清楚了。

操作部分

基本命令

要掌握工作区状态,可以用命令

git status

如果git status显示说有文件修改过,可以用命令

git diff filename

查看具体修改了啥。

想要查看修改历史,用命令

git log

发现输出的内容是按照时间倒序排列的

如果想要输出更简洁,可以加上参数

--pretty=oneline

前面的长长的黄色十六进制序列是commit id

如果想要回滚到上一个版本,也就是5846开头的

可以用命令

git reset --hard HEAD~1

 HEAD表示当前版本,波浪线后面的数字表示上溯到之前的第多少个版本,是可变的

 此时再查看版本历史

会发现最新的一个版本不见了,但是想要回去还是有办法,复制下commit id 的前几位,4b2d6 

输入命令

git reset --hard 4b2d6

 

但是刚刚的commit id是由于命令行没关,直接复制得到的,如果已经关了,可以用查看命令历史的命令(git log是查看提交历史的命令) 

git reflog

 

进阶命令

  • 暂存区(stage/index)是Git相比于其他版本控制系统的一个特色,上文中提到的add命令是将工作区的内容提交到暂存区,必须指定是哪个文件,因为工作区可能修改了不知一个文件,还增加了文件;上文提到的commit命令是把暂存区的所有文件提交到分支,这可以不指定内容,因为暂存区就一个。所以往往是多个add命令后跟一个commit命令。

撤销修改使用命令

git checkout -- filename

此时这个文件可能有两种状态:(1)上一次commit之后的修改 (2)上一次add之后的修改

如果是前者,就恢复到分支的HEAD版本;如果是后者,就恢复到暂存区里的状态。

上面说的是用分支的HEAD版本暂存区恢复工作区,下面说用分支的HEAD版本恢复暂存区

git reset HEAD readme.txt

注意观察使用git reset HEAD readme.txt 前后的变化,前一个是提示暂存区有变化,即将提交到分支;后一个是提示工作区有变化,暂存区没有。

此时可以接着用git checkout -- readme.txt ,让恢复了的暂存区再来恢复工作区。

此时是2022年4月27日,距离廖雪峰老师写下Git教程不知过了几年,于是命令有了新的写法,如果要恢复工作区,也可以是

git restore readme.txt

如果要恢复暂存区,也可以是

git restore --staged readme.txt

远程仓库

已有本地仓库,再创建好远程仓库,进入本地仓库输入以下命令将二者进行关联

git remote add origin git@github.com:github-username/learngit.git

其中origin是远程库的名字

然后输入以下指令将本地仓库的master分支关联到远程的master分支,并将本地仓库的master分支内容推到远程仓库

git branch -M master
git push -u origin master

完成第二个指令的前提是github认证了本地的账号(搜索git SSH 密钥配置)

注意,参数 -u 只有第一次推送本地分支到远程分支才需要,以后不用。

但是上面的太过于繁琐,一般是在Github图形化界面中先创建远程仓库,再将其克隆到本地。创建好远程仓库以后,找到

 复制下来,在git cmd 中进入想要的位置,输入

git clone git@github.com:github-username/gitskills.git

会发现.git文件夹和readme已经在了

 

注:以上内容是跟着廖雪峰老师博客学git使用的笔记,包括“git简介”“时光机穿梭”“远程仓库”三个部分,详见廖雪峰官网-Git教程

以上是关于Git备忘录的主要内容,如果未能解决你的问题,请参考以下文章

Git版本控制 备忘录

Git命令备忘录

知识备忘录git 使用方法

开发者 git日常操作备忘录

常用git命令备忘录,开发者必备

git 操作备忘录