Git入门

Git是分布式版本控制系统,可以记录文本文件的不同版本内容,便于恢复和管理。由于是分布式,每台主机都可以有一个仓库,不是必须联网才能操作。

一、安装Git

我使用的是ubuntu和windows10这两个系统,对于ubuntu,直接执行git命令,如果没有这个命令就执行:

sudo apt install git

而对于windows10,有两种方法。

1、git for windows(这个对于windows应该都有的,虽然不知道远古版本是否支持了)

到官网 https://gitforwindows.org/ 下载然后安装就好了,然后鼠标右键就能看到git bash了。这个有一个好处,就是可以使用windows上面一些集成了Git的编辑器,比如VScode~~~这玩意儿用着是真舒服啊,哈哈~~

2、windows10的ubuntu子系统(仅限win10)

这个有点麻烦,但可以感受一下。从Microsoft Store搜索ubuntu,然后就可以找到ubuntu 18.04或者ubuntu 16.04了,随便安装一个。然后勾上下面那个适用于Linux的windows子系统,找不到windows功能就直接在开始菜单旁边的搜索框搜索就好。然后打开安装好的ubuntu,等待它初始化,就可以像使用ubuntu一样使用它了。子系统对于虚拟机,有一个好处,就是可以直接从它访问windows下的文件,也就是说你可以在windows下修改,在linux下访问。想要在该子系统下访问windows的话,直接cd /mnt就行了,windows所有文件都在那儿。/mnt/c就是C盘,/mnt/d就是D盘,以此类推。

二、确认身份

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

这样就给本地仓库弄了一个所有者,表示这个仓库的所有者是谁,邮箱是啥。

三、创建仓库

在需要创建仓库的目录(学习git建议新建一个空目录)下:

git init

就创建了一个仓库,仓库里多了一个.git目录,这里面的东西就别瞎修改了,可能会毁掉整个仓库。

然后创建文件a、b、c写一些内容,然后加入仓库:

git add a b c
git commit -m "这次commit修改了的东西,建议写一个"

每一次修改内容,只有在add、commit后仓库里面的内容才会被修改。add将修改加入暂存区(stage / index)里面,commit将修改从暂存区转移到仓库里,并清空暂存区,生成一个新的版本号。

顺便一提,删除文件:

git rm 文件名
git commit -m "删除了一个文件"

查看仓库当前状态(比如修改了哪些文件,但没有commit):

git status

查看那些文件到底是修改了哪些地方:

git diff              //检查的是工作区与暂存区的差异【没add之前】,也就是查看修改了哪些
另外还有:
git diff commit_id_1 commit_id_2    //用来比较2个commit之间区别
git diff --staged     //暂存区与仓库的差异【add之后,commit之前】
git diff HEAD -- file //比较的是工作区中的文件与版本库中文件的差异

修改并add、commit了很多次,每次都是一个新的版本,查看历史修改纪录,显示从最近到最远的提交日志:

git log

每次输出commit id(版本号)、修改人、修改时间以及修改的内容,修改的内容就是commit时写的。输出如下:

或者输入命令:

git log --pretty=oneline
或者
git log --oneline

输出如下,略简洁:

四、版本回退

git reset --hard 版本号

其中版本号可以用HEAD表示当前版本,HEAD^表示上一个版本 ,HEAD^^表示上上个版本,HEAD~100表示往上100个版本。

如果版本回退之后又后悔了怎么办——只要知道之前的版本号就可以了。实际上这里的版本号不需要写全,只需要写前几位就好,当然不能太短,否则会有冲突。问题是不知道版本号怎么办?可以使用命令:

git reflog

就可以查看历史命令,找到你要回到的那一次commit,行首就是版本号

有时候只是想撤销某些文件的修改而不需要版本回退:

git checkout -- 文件名
//文件回到最后一次git rm、add或者commit时的状态(这仨哪个时间最近回到哪个,也就是说使用git删除了文件只能使用版本回退找回文件(直接rm,而不是git rm的可以使用checkout找回)

五、远程仓库(使用github)

1、将Github和本地关联

cd打开主目录, ls -a查看主目录下有没有.ssh目录,没有,就执行(windows下也使用git bash进行一样的操作)

cd
ssh-keygen -t rsa -C "email@example.com"

然后就应该有了.ssh目录,然后复制.ssh目录下的id_rsa.pub(公钥)里面的文本内容,然后粘贴到github里,title随意

2、本地仓库推送到Github上

在github上新建一个仓库:

然后在本地仓库目录下执行以下命令,将本地仓库与远程仓库关联,推荐使用第一个命令,第一条命令使用ssh协议,第二条使用https协议,对于git而言,ssh对其支持最好,速度最快

git remote add origin git@github.com:用户名/仓库名.git
或者
git remote add origin https://github.com:用户名/仓库名.git

然后执行:

git push -u origin master

第一次push需要-u(将本地master分支和远程master分支关联),后面就不需要了。第一次push可能会有ssh警告,直接yes即可。

3、远程仓库clone到本地

git clone git@github.com/用户名/仓库名.git
或者
git clone https://github.com/用户名/仓库名.git

这俩和上面remote的时候一样,推荐用第一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值