【Linux】git命令(全)


查看当前git版本信息

git --version

在这里插入图片描述

安装git

centos:

sudo yum install -y git //-y选项表示不再询问,直接安装

ubantu:

sudo apt-get install git -y

创建本地仓库

注意:不允许在.git下手动修改

mkdir gitcode //在gitcode目录下创建一仓库
git init //初始化空的Git仓库于 /home/nan/gitcode/.git/,会生成一个隐藏目录.git

在这里插入图片描述

完善和查看当前本地仓库的配置项

首次提交git,需要完善邮箱和姓名:(若添加–global选项表示全局的)
在这里插入图片描述
查看本地仓库配置选项

git config -l //有user.name 和 user.email等

重置某个配置项的命令:若要重置全局的,则加上–global选项

git config --unset user.name
git config --unset user.email

git原理

我们在gitcode目录下创建一个ReadMe文件,目前情况下,git能否管理ReadMe文件?答案是不能
在这里插入图片描述
.git是版本库(仓库),ReadMe处于工作区。版本库中还有stage/index(暂存区/索引),还有master(Head指针指向master),还有objects,修改的工作区内容会写入对象库的一个新的git对象中。使用add和commit之后,才算把工作区的内容添加到版本库。
在这里插入图片描述
提交内容后(这里先做原理上的演示,提交操作后面有介绍),版本库.git有以下这些新增信息:

master里面存的是最新一次提交的commit-id(git对象的索引):
在这里插入图片描述
在这里插入图片描述

git cat-file -p commit-id/objects中的对象

将远端仓库克隆到本地

第一步:登录Gitee,获取你的仓库地址;
第二步:克隆远端仓库到本地,在命令行输入——>

git clone [你的仓库地址]

第三步:如果是私有项目,输入用户名密码,仓库就克隆到本地了。

什么是仓库?

ll -al之后,.git就是仓库,仓库的本质其实就是一个文件夹,我们在命令行输入tree .git,会出现一大串东西,其中objects记录了用户修改版本号,tags就是标签等等。

仓库里的.gitignore文件是什么?

.gitignore文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。

三板斧第一招:git add

git add [文件名]

将需要用git管理的文件告知git(将要工作区修改的文件保存到git版本库的暂存区)

三板斧第二招:git commit

提交改动到真正意义上的本地仓库,即.git版本库(master)

git commit -m '日志'

提交的时候,应该注明提交日志,描述改动的详细内容(注意不要乱写!!!)

三板斧第三招:git push

将本地仓库同步到远端服务器上

git push

需要输入用户名密码,同步成功后,刷新gitee或github页面就能看到代码改动了。push到远端仓库本质上就是将.git仓库里的内容同步到Gitee上去。

对仓库文件进行更改

git mv test.txt test.c //对文件进行重命名
git rm -f test.c //删除指定文件

因为这里的mv和rm只是删除本地文件,远端仓库还未更改,所以还需要重新提交到远端仓库。

查看使用提交日志

可以查看你的所有操作痕迹。

git log --pretty=online 或者 git log --graph --abbrev-commit

查看本地与远端的同步状态

git status

这个表示修改的文件还没有add,存到暂存区
在这里插入图片描述
这个表示已经add,待commit:
在这里插入图片描述
表示已经提交完毕,工作区没有什么修改的文件需要提交了
在这里插入图片描述

查看修改的内容

git diff 要查看的文件名

在这里插入图片描述

版本回退功能

commit-id可通过git log查看

git reset [--soft | --mixed | -hard] [commit-id]

在这里插入图片描述
如果回退了,又后悔了,我们依然可以先查看git log,然后使用git reset命令进行恢复。但是如果我们清屏或者退出了当前会话,我们再次查看git log就无法找到之前版本的commit-id了,这时可以使用git reflog(记录了本地每次的提交命令),查看commit-id。

HEAD表示当前版本,HEAD^表示上一个版本。

如果只是要回退工作区的内容(即还未add,commit),可以使用git checkout --filename

从远端仓库拉取最新版本文件

若我们直接在远端仓库进行改动,比如直接在gitee或github上进行修改文件,在本地直接提交会出现冲突,所以我们需要先将远端仓库最新版本拉取到本地,用如下命令:

git pull

删除已安装的git

centos:

sudo yum remove git -y

ubantu:

sudo apt-get remove git -y

分支

查看本地分支:

git branch //*在哪里,表示当前就处于哪个分支

创建本地分支:

git branch dev(分支名) 

在这里插入图片描述
切换分支:(也可以直接用一句代码完成创建和切换git branch -b dev

git checkout dev(分支名)

下面的图是我们在dev分支,做了一次文件内容上的修改,并add,commit。此时我们在dev分支是可以看到内容的变化的,但是此时如果我们切换到master分支,是查看不到变化的。
在这里插入图片描述

合并分支:(合并分支后,才能在主分支master查看到dev分支所修改的内容)

合并冲突:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必需人为决定新代码内容,所以如果merge产生冲突,需要手动解决,并重新进行一次提交。

git merge dev(分支名)
git merge --no-ff -m "merge master" master(分支名)

在这里插入图片描述
删除分支(我们必须在其它的分支,删除我们想删除的分支。比如如果我们要删除dev分支,我们现在必须处于master分支)

git branch -d dev

删除dev分支后,master指向的提交是不变的,因为在此前已经合并分支了。
在这里插入图片描述

  • 11
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_麦子熟了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值