Git入门操作

Git简介

Git分有工作区,暂存区,本地库
Git入门操作_第1张图片
Git具体命令

1. 初始化

命令:

git init

首先新建一个文件夹,把他当作我们要用git来管理的一个项目文件。右键点击GitBashHere
Git入门操作_第2张图片
会弹出一个命令框,我们执行git init
Git入门操作_第3张图片

这代表我们已经初始完成

2. 状态查看

git status

Git入门操作_第4张图片
这个告诉我们当前在master分支上,没有提交记录,最后一行告诉我们没有内容需要提交
其它git状态下面会讲到

3. 添加操作

git add [filename/.]  # . 代表当前文件中的所有内容

此命令表示将工作区的内容提交到暂存区
这里先新建一个test.txt文件并且键入hello git
Git入门操作_第5张图片
这时再查看状态
Git入门操作_第6张图片
告诉我们,此时有新的文件进来了,它可以去提交,于是使用git add命令,下方的警告实是在安装git的时候就会告诉你的替换规则,不用管他。这时再查看状态
Git入门操作_第7张图片
告诉我们已经将test.txt文件提交到了暂存区,同时还提示给我们另外一个命令

git rm --cached [filename]

该命令是将暂存区的文件移除
Git入门操作_第8张图片
此时又变成了之前的状态

4. 提交操作

该命令是将暂存区的文件提交到本地库

git commit -m "必要的说明"

Git入门操作_第9张图片
这里说明该文件已经被追踪到了,剩下就是上传到远程仓库进行管理

5. 提交到远程仓库

git remote add origin 远程仓库地址  #与远程仓库建立连接
git remote rm origin # 删除已和远程仓库建立的连接
git push origin master #提交到master分支,或者其它分支,自己定义即可
git push -u origin master #-u参数,可简化下次直接git push即可

Git入门操作_第10张图片
可使用

git remote -v

查看关联信息
Git入门操作_第11张图片
此时可用

git push origin master #master可以改为任意的分支

进行上传
Git入门操作_第12张图片
github上查看远程仓库,文件已经上传了上去
Git入门操作_第13张图片
这时再对test.txt文件进行修改,查看状态,这里说明已经对工作区的文件进行了修改
Git入门操作_第14张图片
我们再执行添加,提交操作

Git入门操作_第15张图片

6. 查看版本历史记录

git log
git log --pretty=oneline #日志以一行显示,哈希值全部显示
git log --oneline #日志以一行显示,哈希值显示7位
git reflog # 显示当前版本移动到其它版本移动的步数,并且显示所有的历史版本

Git入门操作_第16张图片
这里有多个其中HEAD指向的表示当前版本,即刚才修改提交的版本,而后续的回滚等操作,实际上就是移动HEAD这个指针进行的。
为了方便叙述版本前进后退,多进行几次提交
Git入门操作_第17张图片
一行显示
Git入门操作_第18张图片
显示版本移动步数HEAD{NUM},NUM表示移动到当前版本的移动步数
Git入门操作_第19张图片

7. 版本前进后退

  1. 基于索引值
git reset --hard 索引值 # 索引值可以只取最后7位即可

Git入门操作_第20张图片
此时文件已发生改变
Git入门操作_第21张图片
多次移动,查看日志
Git入门操作_第22张图片

  1. 使用^符号:只能往后
git reset --hard HEAD^  #有几个^符号,表示往后退几个版本

需要去历史记录数版本数

  1. 使用~符号:只能后退
git reset --hard HEAD~[num] # 表示回退num个版本

同样需要去历史记录中数版本个数

git reset参数对比

--soft  #仅仅在本地库移动指针
		暂存区	工作区
本地库
--mixed #在本地库移动HEAD指针,重置暂存区
				工作区
本地库	暂存区
--hard #在本地库移动HEAD指针,重置暂存区并且重置工作区

8.永久删除文件后找回

前提:删除前,文件存在时的状态已经提交到了本地库
首先,创建test1.txt文件,提交后删除
Git入门操作_第23张图片
可以看到,工作区已经没有test1.txt文件里,这里git告诉我们可以把删除的记录进行提交
Git入门操作_第24张图片
提交到本地库所有的版本git都会记录,这样就i可以恢复文件。这里我们可以回退到上一个没有删除test1.txt的版本
Git入门操作_第25张图片
可以看到test1.txt文件找回来了。当删除操作知识添加到了暂存区,没有提交到本地库时,删除了工作区的莫格文件,则找回如下
Git入门操作_第26张图片

9.文件比较

git diff [filename] #在暂存区,比较filename文件的变化
git diff HEAD [filename] #和本地库中的版本进行比较

我们在test1.txt中加入一行语句,查看文件变化
Git入门操作_第27张图片
绿色表示新添加的,如果是删除文件里的一些内容,则会用红色来标记。如果提交到暂存区,则无法比较,需要带上HEAD指定某个版本
Git入门操作_第28张图片

10.git分支

什么是分支?
我的理解:在版本控制过程中,使用多条线同时推进多个任务
Git入门操作_第29张图片
多个分支合并或修复bug
Git入门操作_第30张图片

  1. 创建分支
git branch 分支名  #创建分支

首先查看当前状态,发现在master主分支上
Git入门操作_第31张图片
当然也可以使用如下命令查看所有分支

git branch -v

Git入门操作_第32张图片
我们添加一个hot_fix分支
Git入门操作_第33张图片
2. 切换分支

git checkout 分支名 #切换到指定分支

Git入门操作_第34张图片

git checkout -b 分支名 #创建并切换到指定分支

Git入门操作_第35张图片
3. 提交到分支
切换到分支提交即可,此时可以看到,test_a这个分支已经变成了最新的版本
Git入门操作_第36张图片
4. 合并分支
第一步:切换到被合并,需要增加新内容的分支上
第二部:执行如下命令

git merge branchname  # 表示把branchname的内容合并合并到当前分支上

Git入门操作_第37张图片
5. 冲突解决
不同分支下对同一个文件都进行了修改,那么当要合并的时候,git不知道需要以哪一个位准进行合并,这时候就需要手动合并
Git入门操作_第38张图片
冲突体现:
Git入门操作_第39张图片

第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意程度,保存退出
第三步:git add [文件名]
第四步:git commit -m “日志信息”
注意,这里commit后面不能加上文件名,否则会报错

Git入门操作_第40张图片
正确执行后,就合并过来啦
Git入门操作_第41张图片

11.git克隆

git clone 仓库远程地址

远程仓库地址
Git入门操作_第42张图片
Git入门操作_第43张图片
此时就clone下来了
Git入门操作_第44张图片

12.git拉取

git pull origin master

在new_test中的test.txt中随便写入几句话后我们提交
Git入门操作_第45张图片
再去远程仓库查看,发现内容已经改变
Git入门操作_第46张图片
这时切换到gittest目录下,进行拉取
Git入门操作_第47张图片
解决冲突

git pull origin master
  1. 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”揉作解决即可
  2. 拉取下来后如果进入冲突状态,则按照“分支冲突解决”揉作解决即可。

你可能感兴趣的:(git)