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. 版本前进后退
- 基于索引值
git reset --hard 索引值 # 索引值可以只取最后7位即可
此时文件已发生改变
多次移动,查看日志
- 使用^符号:只能往后
git reset --hard HEAD^ #有几个^符号,表示往后退几个版本
需要去历史记录数版本数
- 使用~符号:只能后退
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
- 创建分支
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
- 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”揉作解决即可
- 拉取下来后如果进入冲突状态,则按照“分支冲突解决”揉作解决即可。
以上是关于Git入门操作的主要内容,如果未能解决你的问题,请参考以下文章