Git入门操作

Posted 遥远的歌s

tags:

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

Git简介

Git分有工作区,暂存区,本地库

Git具体命令

1. 初始化

命令:

git init

首先新建一个文件夹,把他当作我们要用git来管理的一个项目文件。右键点击GitBashHere

会弹出一个命令框,我们执行git init

这代表我们已经初始完成

2. 状态查看

git status


这个告诉我们当前在master分支上,没有提交记录,最后一行告诉我们没有内容需要提交
其它git状态下面会讲到

3. 添加操作

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

此命令表示将工作区的内容提交到暂存区
这里先新建一个test.txt文件并且键入hello git

这时再查看状态

告诉我们,此时有新的文件进来了,它可以去提交,于是使用git add命令,下方的警告实是在安装git的时候就会告诉你的替换规则,不用管他。这时再查看状态

告诉我们已经将test.txt文件提交到了暂存区,同时还提示给我们另外一个命令

git rm --cached [filename]

该命令是将暂存区的文件移除

此时又变成了之前的状态

4. 提交操作

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

git commit -m "必要的说明"


这里说明该文件已经被追踪到了,剩下就是上传到远程仓库进行管理

5. 提交到远程仓库

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


可使用

git remote -v

查看关联信息

此时可用

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

进行上传

github上查看远程仓库,文件已经上传了上去

这时再对test.txt文件进行修改,查看状态,这里说明已经对工作区的文件进行了修改

我们再执行添加,提交操作

6. 查看版本历史记录

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


这里有多个其中HEAD指向的表示当前版本,即刚才修改提交的版本,而后续的回滚等操作,实际上就是移动HEAD这个指针进行的。
为了方便叙述版本前进后退,多进行几次提交

一行显示

显示版本移动步数HEADNUM,NUM表示移动到当前版本的移动步数

7. 版本前进后退

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


此时文件已发生改变

多次移动,查看日志

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

需要去历史记录数版本数

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

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

git reset参数对比

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

8.永久删除文件后找回

前提:删除前,文件存在时的状态已经提交到了本地库
首先,创建test1.txt文件,提交后删除

可以看到,工作区已经没有test1.txt文件里,这里git告诉我们可以把删除的记录进行提交

提交到本地库所有的版本git都会记录,这样就i可以恢复文件。这里我们可以回退到上一个没有删除test1.txt的版本

可以看到test1.txt文件找回来了。当删除操作知识添加到了暂存区,没有提交到本地库时,删除了工作区的莫格文件,则找回如下

9.文件比较

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

我们在test1.txt中加入一行语句,查看文件变化

绿色表示新添加的,如果是删除文件里的一些内容,则会用红色来标记。如果提交到暂存区,则无法比较,需要带上HEAD指定某个版本

10.git分支

什么是分支?
我的理解:在版本控制过程中,使用多条线同时推进多个任务

多个分支合并或修复bug

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

首先查看当前状态,发现在master主分支上

当然也可以使用如下命令查看所有分支

git branch -v


我们添加一个hot_fix分支

2. 切换分支

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

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


3. 提交到分支
切换到分支提交即可,此时可以看到,test_a这个分支已经变成了最新的版本

4. 合并分支
第一步:切换到被合并,需要增加新内容的分支上
第二部:执行如下命令

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


5. 冲突解决
不同分支下对同一个文件都进行了修改,那么当要合并的时候,git不知道需要以哪一个位准进行合并,这时候就需要手动合并

冲突体现:

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


正确执行后,就合并过来啦

11.git克隆

git clone 仓库远程地址

远程仓库地址


此时就clone下来了

12.git拉取

git pull origin master

在new_test中的test.txt中随便写入几句话后我们提交

再去远程仓库查看,发现内容已经改变

这时切换到gittest目录下,进行拉取

解决冲突

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

以上是关于Git入门操作的主要内容,如果未能解决你的问题,请参考以下文章

Git常用操作入门(基于BASH命令快速入门)

Git常用操作入门(基于BASH命令快速入门)

Git基础入门Git撤销操作和远程仓库管理

Git基础入门Git基本操作

使用git操作GitHub代码入门教程

git 基础入门操作