IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git使用入门 -> 正文阅读

[开发工具]Git使用入门

前言

Git使用相信大家都会,也很简单,无非就是add commit pull push,但是当出现冲突,或者是查看版本修改并回退的时候,指令的方式就很繁琐,所以就出现了很多git界面工具,比如git自己的GUI,小乌龟TortoiseGit,Sourcetree,vscode的GitLens,本文主要介绍git常用指令以及结合vscode的使用,希望对对git不是很熟悉的小伙伴提供帮助。

GIT命令行

常规提交

一般来说,如果确定不会有冲突(比如最近一段时间开发者都是自己),那步骤就是

  1. git add . ——暂存的代码才会被commit识别,有些不想提交的文件可以不add
  2. git commit -m ‘描述信息’ ——这个时候代码还在本地
  3. git pull ——拉取变更到本地并且合并到本地分支(区别于git fecth,后面会讲,如果可能会冲突,那不应该用pull)
  4. git push ——推送到远程,没有pull可能会报错,因为远程跟本地的状态可能不一样

以当前分支为develop为例,常用指令如下

# 切换分支
git checkout develop
# 切换分支,没有就新建
git checkout -b develop

查看本地变化

git status

添加到追踪(待提交)

# 点号代表从当前文件夹的所有改变都添加
git add .
# 添加某个文件
git add readme.md
# 添加某个文件夹
git add src

拉取远程代码并合并到本地

# 远程分支跟本地分支一致
git pull
# 拉取master分支
git pull origin master

提交到本地

git commit -m 'feat: 添加某功能'

推送到远程

# 推送到相同分支
git push
# 推送到指定分支
git push origin master

git stash

git add是把文件存到stage中,stage是当前分支待提交的,还有一个stash是一个全部分支都能拿到的暂存空间
应用场景:

  1. 代码写一半还不想提交,有人修复了一个bug你想拉取下来。
    git stash——>git pull——>git stash pop
  2. 想在develop上开发,但是不小心写到了master上(stash中的内容可以转移到任意分支)。
    git stash——>git checkout develop——>git stash pop

入栈

# 暂存全部
git stash
# 暂存指定
git stash push '文件路径'
# 暂存之后写一点描述信息
git stash save

出栈

# 移出所有(如果save了很多次,只会移出最近的一次save,可以多执行几次)
git stash pop
# 移出指定
git stash drop '文件路径'
# 应用到某一分支
git stash apply
# 清除,如果有冲突的时候,pop并不会移出,或者用了apply,需要手动清除一下
git stash clear

查看(查看不常用,一般不会暂存很多次)

# 查看有多少次暂存
git stash list
# 查看某一次暂存(不写就是展示最新的,结合list看编号)
git stash show
git stash show 1

在这里插入图片描述

解决冲突

如果你跟别人同时修改了一个文件,然后别人已经提交了,那么拉取代码下来就会用冲突
当你 add commit pull之后就会变成下面这样
在这里插入图片描述

在这里插入图片描述
HEAD到==是本地的变更,=到>是远程的变更上面有写提交的版本号,改成想要的样子之后继续 git add

但是提交之后版本就多了一个merge提交
在这里插入图片描述
甚至别人的提交就变成你的提交了,如下staged中的修改其实并不是这次冲突的,但是提交之后最终就变成了本次提交的修改
在这里插入图片描述
所以需要合并提交

合并提交

查看版本可以选择复制版本号到
···bash
git log
···
在这里插入图片描述

使用“q”健退出git log

但是通常我们都是合并最近几次
1、举例合拼最近两次

# 合并最近两次,后面的数字代表最近几次
git rebase -i HEAD~2

在这里插入图片描述

2、按“i”健进入编辑(跟vim的指令是差不多的,如果你会vim的话),根据提示改成下面,s代表融合到pick那次提交
在这里插入图片描述
3、按下Esc减退出,输入小写的":wq"(有个英文冒号),保存
在这里插入图片描述
4、如果要更改描述则继续 i :wq,如果不需要则:wq保存退出

5、最后执行git push

使用暂存来解决冲突

如果你已经知道了你跟别人修改了同一个文件,那一般是会存在冲突的,那你可以使用暂存来先解决冲突,然后再提交(因为合并提交实在是太麻烦了,所以多人开发时作者推荐是先暂存)

git stash
git pull origin two
git stash pop
git status
...
解决冲突
...
git stash clear

这个时候后只要解决冲突之后 add commit push就可以了
然后因为用冲突,pop之后stash里面的还是有内容 stash clear 一下

如果你的代码因为冲突导致了一些代码版本错乱了(l例如别人的代码明明你没改过却需要你来提交),那么可以选择回退版本,然后再使用暂存的方式解决冲突

回退版本与强制提交

有时候代码冲突了,不知道被改了什么或者是错误的提交,就需要回退版本,回退版本的思路是
log查看版本号–reset回退–commit提交–push强制推送

git log
git reset 版本号
git add .
git commit -m ''
git push -f

因为本地分支的版本远程的旧,pull会把远程的代码又更新下来,所以不能执行pull,但是不pull就部能push,会报错如下
在这里插入图片描述
回退软回退(–soft)跟硬回退(–hard),软回退更改的代码会退回到staged,硬回退就啥也没有了,所以别太硬

git reset --soft 版本号
git reset --hard 版本号
# 回退到上一个版本
git reset --hard HEAD
# 回退到上上个版本
git reset --hard HEAD~2

强制提交指令

# 指定分支
git push -u origin master -f
# 当前分支
git push -f

查看版本差异

用可视化工具吧,看多了眼睛会瞎

# 自己查手册,作者眼神不好不会用
git diff --help

使用vscode的GitLens

不管用什么工具,其实原理都是指令的原理,无非就是add commit pull stash push
vscode安装GitLens的方法,如下图搜索安装就行
在这里插入图片描述
不管是做什么语言开发,其实vscode都是一款不错的代码查看工具,比起Notepad++要好用得多,结合Project Manager插件作为一款代码管理工具是相当不错的(作者看java、python项目也是用vscode来看代码,不用学idea的git使用)

常规提交

步骤跟指令是一样的,不过改成了点击,看下图
步骤为
1、点击Changes上“+”号把所有变更都add一下
2、输入框内写提交信息然后点击commit,右边的下拉可以直接commit+pull,commit+push
3、点击SOURCE CONROL上刷新按钮执行pull
4、点击SOURCE CONROL上?
在这里插入图片描述

版本查看

GitLens 的提交版本查看,跟文件历史版本查看很有用,可以方便的知道谁在什么时候修改了什么,右键对比文件差异更是爽翻
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git stash

stash直接看图吧,看不懂就算了
单个文件
在这里插入图片描述
多个文件,更多操作
在这里插入图片描述

解决冲突

快捷覆盖

右键某个文件
在这里插入图片描述
指令里讲了,head里面是本地的修改,就是current,可以右键选择“Accept All …”直接确认要使用本地的还是要用远程的,不用我们手动去对比

合并提交

右键选择COMMITS上你要合并的分支,最早的一次本地提交之前的那个
在这里插入图片描述

在这里插入图片描述
2、选择合并的方式,在下拉里面是可以输入的
![在这里插入图片描述](https://img-blog.csdnimg.cn/035ee57d4cff4a9fbf12c7d94cbb5755.png
3、最后一步比较坑, start rebase之后又变成了指令的模式了,还是一样的保存提交
在这里插入图片描述

使用暂存

跟指令一样的步骤,看上面的常规提交+git stash部分的图片自己尝试一下吧

回退版本

右键某个版本(可以省去git log然后复制版本号,美滋滋)
在这里插入图片描述
强推没找着在哪。。。用 git push -f

总结

作者最开始接触git用的是小乌龟,后面用了mac之后改用了Sourcetree(小乌龟只支持window),后面从sublime改用vscode后,发现vscode的GitLens也还不错,对于可视化工具,有些开发时嗤之以鼻的,觉得用命令行更加有逼格,但是作者只想说,人类的进步就是学会使用更加便利的工具。

作者现在的使用方式是命令结合VSCODE一起使用,毕竟有些git指令操作实在是太繁琐了,比如add特定的几个文件还得在终端里面挑文件,用vscode点一点就可以了。又比如解决冲突覆盖某个文件用“Accept All …”。但是单机开发常规提交直接 add commit pull push指令又更快。结合GitLens,就只要记住add pull commit push stash这五个指令就行。

最后的最后,如果是实在搞不清暂存、回退版本、合并提交,或者你本地分支的状态被你玩炸了,那你多clone一份远程最新的代码到另一个文件夹,再把你的现有代码复制过去看差异再提交也是不错的解决方式(重启能解决90%的问题dog,啥也不用背)

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:26:35  更:2022-08-19 19:26:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:00:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码