全网最详细的git指令笔记

零基础入门学习git

学前知识

首先要了解什么是版本控制。
版本控制( Revision control):版本迭代,方便管理文件,目录或者工程等。
好处:多人协同工作,追踪和记载一个或多个文件的历史记录,统计工作量,提到开发效率。

git 就叫做分布式版本控制,每个人都有一个本地仓库,不会因为服务器损坏或者网络问题造成麻烦。

Git和SVN有什么区别

最常见的一个问题,git和SVN有什么区别:
SVN是集中式版本控制,版本库是集中在中央服务器的,在工作的时候,用的都是自己的电脑,所以首先要从中央服务器获取到最新的版本,然后工作。完成工作后需要把自己的文件推送到中央服务器,也就是说集中式版本控制系统必须联网才能工作,对网络带宽要求很高。

Git是分布式版本控制,没有中央服务器,每个人的电脑都是一个完整的版本库,所以工作不需要联网。协同的方法是,自己在电脑上修改了A文件,其他人在电脑上修改了B文件,这时,你们俩只需要把各自的修改推送给对方,就可以互相看到对方的修改了。

Git是目前世界上最先进的分布式版本控制。

基础知识

对于任何一个文件,Git内部只有三种工作区域:工作区,暂存区,本地仓库。

  1. 工作区(working directory):就是平时存放代码的地方。新增或修改了某个文件但没有提交保存。

  2. 暂存区(stage/index):用于临时存放你的改动,事实上它知识一个文件,把新增或修改的文件放在下次提交时要保存的清单中。

  3. 仓库区:Repository(本地仓库),安全存放数据的位置,这里面有你要提交的所有版本数据,其中HEAD指向最新放入仓库的版本

  4. 远程仓库:Remote,托管代码的服务器。

在这里插入图片描述

还有一些小点:
1.master主分支
2.工作区未放入暂存区:untracked 未追踪/unstage
3.有些时候我们不想把某些文件纳入版本控制,比如数据库文件,临时文件,设计文件等。
在主目录下建立“.gitignore”文件,文件编写内容规则如下:
#行是注释行
.txt #忽略所有.txt结尾的文件,这样上传就不会被选中
!lib.txt #但lib.txt除外,不被忽略
bulid/ #忽略build/目录下的所有文件
doc/
.txt #忽略doc/目录下的所有.txt文件
(待补充)

下载和配置

下载:sudo apt-get install git
查看版本:git --version
设置姓名和邮箱:
git config --global user.name “xxx”
git config --global user.email “xxx@gitee.com”
查看信息:git config --list 同(git config -l)

上面所有的配置文件都保存在本地

基本操作

工作区——git add——暂存区(stage)——git commit——本地仓库(history)——git push 远程仓库

mkdir gittest:新建文件夹(本地仓库)
cd gittest:进入本地仓库
git init :初始化本地仓库 #这一步会在本地仓库生成一个隐藏文件.git,可以通过ctri+H来显示。
git clone [url] :也可以从远程仓库克隆

touch xxx.txt :新建文件
git add xxx.txt :放到暂存区
git add . :添加所有文件到暂存区
git status:查看当前状态(红色表示未提交)
git commit -m “注释内容” xxx.txt :提交到本地仓库
git commit -am “注释内容” xxx.txt :从工作区直接到本地仓库

版本前进和后退

要记住!版本的回退和前进是基于HEAD指针的。

git log :来查看前面几个版本(HEAD->指向的是当前的版本)光标中途停住,说明没显示完,按空格即可。
git log --pretty=oneline :每一条log只显示一行
git log --oneline
git reflog 最常用了应该,命令结果如下:

在这里插入图片描述
HEAD->指向当前的所在的位置
HEAD@{数字}表示回到之前的版本需要几步
最前面黄色的数字是一部分哈希数,也是索引值。

git reset --hard [索引值 ]:fdb946f 去到哪个版本都行

reset后面接的三个参数的对比:hard soft mixed
soft :仅仅在本地库移动HEAD 指针
mixed : 在本地库移动HEAD指针,重置暂存区
hard: 在本地库移动HEAD指针,重置暂存区和工作区

文件删除与找回

其实文件的找回就是相当于版本的回退。
当你使用rm xxx.txt 删除文件后,已经被删除的文件需要再次从工作区提交到本地仓库
这时候可以用之前的退回版本指令回到删除前的版本,也就是找回被删除的文件。

分支与合并

git branch :查看有哪些的分支
git beanch -a :查看本地和远程所有的分支
git branch [xxx]:创建分支
git checkout xxx :切换分支
git branch -d [xxx]:删除分支(没合并的不会删除)
git branch -D[xxx]:强制删除
git merge xxx :将xxx合并到当前所在分支

文件对比

git 中的文件对比是以“行”为单位

git diff test.txt (加减号表示删除和添加的行)比较工作区和暂存区的文件

如果文件在暂存区,使用git diff HEAD test.txt 比较

git diff branch1 branch2:比较两个分支中文件的不同
git diff branch1 branch2 --stat :显示简单信息
git diff “branch” :比较当前分支和“branch”分支的不同

远程仓库

git remote add origin url:和远程仓库建立联系

如果已经建立连接,可以使用git remote -v查看建立了哪个连接。

git remote rm origin 删除连接,再重新建立新的连接


git push -u origin “master”:本地仓库推送到远程仓库,第一次推送要用到“-u origin master”
下一次直接使用git push

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值