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 stash

git clone

git init?

?git remote?

git branch

git checkout

git add?

git commit

?git rm?

git push

git pull

git fetch

git merge

git log

git reset?

?关于 HEAD:

?git reflog

??git revert

git cherry-pick

git tag


?git stash

当在正在开发中,要切换到其它分支工作时,本地更改不想被提交时,可临时储藏代码变更。它的数据将被存在你仓库 .git 文件下的 refs/stash 里。

  • git stash save 'xxx': 储存变更
  • git stash list: 查看储存区所有提交列表
  • git stash pop: 弹出并应用最近的一次储存区的代码提交
  • git stash drop stash@{n}: 删除某次储存记录
  • git stash clear: 清楚所有 stash 信息
  • git stash apply stash@{x} 注:x为 git stash list 查到的,x为0时为最近一次的修改暂存。

git clone

  • git clone xxx.git
  • git clone xxx.git -b branch1? ?clone代码并且自动切换到branch1分支

git init?

?本地项目初始化一个git仓库,不过本地 init 的仓库没法和远端进行交互,所以我们还是需要去 github/gitlab 创建一个远端仓库,然后关联一下,也就是?git remote?命令了。

?git remote?

用于和远程仓库进行关系绑定处理等等操作。

用于和远程仓库进行关系绑定处理等等操作。

  • git remote add: 添加一个远程版本库关联
  • git remote rm: 删除某个远程版本库关联

比如我们本地有个初始化好的仓库,同时还有一个创建好的远程空仓库,那么我们就可以执行一下操作让他们关联起来:

  1. git remote add origin xxx.git先添加到本地仓库
  2. git push -u origin master:表示把当前仓库的 master 分支和远端仓库的 master 分支关联起来,后面我们执行 push 或者 pull 都可以非常方便的进行操作了。

git branch

  • git branch:查看本地所有分支信息
  • git branch -r:查看远程仓库所有分支
  • git branch -a:查看本地和远程仓库所有分支

git checkout

以当前分支为基准,创建一个新的分支并切换过去,可以使用如下命令。

  • 创建并切换到指定新分支:git checkout -b branch1

git add?

  • git add [file1] [file2]: 添加一个或多个文件到暂存区

一般我们平时在使用的时候,用的比较多的应该还是:

  • git add .:把当前目录下得所有文件改动都添加到暂存区
  • git add -A:把当前仓库内所有文件改动都添加到暂存区

git commit

  • ?git commit [file1] ... -m [message]:将暂存区的内容提交到本地 git 版本仓库中

?git rm?

个其实也挺有用的,比如我们项目中有个文件叫 .env,这个文件是一个私有的,不能被提交到远程的,但是我们不小心提交到了本地仓库中,这个时候我们把这个文件添加到 .gitignore 文件中,表示需要被 git 忽略提交,但是由于我们已经提交到本地仓库了,所以如果不先从 git 仓库删除是没用的。

如果直接右键删除,那么这个文件的记录还是会被保存到远端仓库,别人还是能看得到你这个信息,所以我们需要先从 git 仓库中删掉这个文件才行。

  • git rm .env:执行完这个命令就表示 .env 文件从 git 仓库中删除了,配合 .gitignore 就能保证以后所有的 .env 文件变更都不用担心被提交到远程仓库。

  • git rm -r dist:如果我们要删除的是一个目录,那么加上 -r 参数就好了。

git push

  • 推送分支并建立关联关系:git push --set-upstream origin branch1

接下来我们想要把刚创建好得分支推送到远端,一般来说我们可能会需要用到 git push,但我们这是个新分支,根本没和远端仓库建立任何联系,那么我们就需要加点参数,让他们关联上:

  • 推送分支并建立关联关系:git push --set-upstream origin branch1

完事之后我们可以再去远程仓库看一眼就会发现我们创建的新分支已经推上去了。接下来可能会有小伙伴要问了,那如果远端仓库已经有了这个分支名咋整?

这里就分两种:

  1. 一种就是你本地的代码和远端代码没有冲突的情况下,并且你本地有新增提交,那么你可以仍然执行上述命令,这样就会直接将当前本地分支合远程分支关联上,同时把你的改动提交上去。
  2. 另一种就是本地分支和远端分支存在冲突,这个时候你执行上述命令就会出现提示冲突,那么接下来就需要你先把远端当前分支的代码拉下来,解决一下冲突了,就需要用到 git pull 命令了。

git pull

通常情况下,如果当前分支已经和远端分支建立了联系,那么我们想要合并一下远端分支,只需要执行 git pull 就好了,不用带其他参数,但如果和上面提到的 git push 时产生了冲突,还没有建立联系的时候,我们就需要指定需要拉取哪个分支的代码下来进行合并了。

  • 拉取指定远端分支合并到本地当前分支:git pull origin branch1

这里的 origin 是我们对远端仓库的命名,想改也是可以的,不过一般都是用的 origin。

回到上面提到的冲突问题,我们可以直接使用 git pull 然后指定合并当前本地分支想要建立联系的远程分支,然后本地解决一下冲突,然后提交一下改动,再执行 git push --set-upstream origin branch1 命令就大功告成了。

git fetch

了解完上面描述的 git pull,命令之后,其实这个命令也很好理解了,特定时候,可能我们只是想把远端仓库对应分支的变更拉到本地而已,并不想自动合并到我的工作区(你当前正在进行代码变更的工作区),等晚些时候我写完了某部分的代码之后再考虑合并,那么你就可以先使用 git fetch

fetch 完毕之后,我提交了自己当前工作去的变更到本地仓库,然后想合并一下远端分支的更改,这个时候执行一下 git merge origin/[当前分支名](默认一般是用 origin 表示远端的分支前缀)即可。

git merge

合并指定分支代码到当前分支。一般来说,我们用的比较多的场景可能是,远端仓库 master 分支有变更了,同时这个时候我们准备提 MR 了,那么就需要先合一下 master 的代码,有冲突就解决下冲突,那这个时候我们可以做以下操作:

  1. 切到 master 分支,git pull 拉一下最新代码
  2. 切回开发分支,执行 git merge master 合并一下 master 代码?

git log

当前分支的提交记录信息,比如 commitId 和提交的时间描述等等

git reset?

  • git reset [--soft | --mixed | --hard] [HEAD]

?关于 HEAD:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本

?git reflog

用来查看你的所有操作记录。(reset?回滚掉的?记录通过git log看不到,可以通过git reflog查看全部)

??git revert

当然了,如果是针对 master 的操作,为了安全起见,一般还是建议使用 revert 命令,他也能实现和 reset 一样的效果,只不过区别来说,reset 是向后的,而 revert 是向前的,怎么理解呢?简单来说,把这个过程当做一次时光穿梭,reset 表示你犯了一个错,他会带你回到没有犯错之前,而 revert 会给你一个弥补方案,采用这个方案之后让你得到的结果和没犯错之前一样。

举个栗子: 假设你改了 README 的描述,新增了一行文字,提交上去了,过一会你觉得这个写了有问题,想要撤销一下,但是又不想之前那个提交消失在当前历史当中,那么你就可以选择使用 git revert [commitId],那么它就会产生一次新的提交,提交的内容就是帮你删掉你上面新增的内容,相当于是一个互补的操作。

git cherry-pick

其实对于我们工作中大部分场景下应该用不到这个功能,但是呢有的时候这个命令又能挽救你于水火之间,那就是当某个倒霉蛋忘记切分支,然后在 master 分支上改了代码,并且提交到了本地仓库中,这个时候使用git cherry-pick简直就是神器了。

  • git cherry-pick:将执行分支的指定提交合并到当前分支。

一听介绍就来精神了,雀氏有点东西,比如我在 master 分支提交了某个需求的代码,同时还没提交到远程分支,那么你就可以先 git log 查看一下当前的提交,找到 master 分支正常提交之后的所有 commitId,然后复制出来,然后再切到你建好的开发分支,接着执行 git cherry-pick master commitId1 commitId2 commitId4

完事之后记得清理一下作案现场,把你的 master 分支代码恢复到正常的提交上去。

git tag

顾名思义,也就是打标签的意思。一般可能会在你发布了某个版本,需要给当前版本打个标签,你可以翻阅 vite 的官方 git 仓库,查看它的 tag 信息,它这里就标注了各个版本发布时候的 tag 标签。

它有两种标签形式,一种是轻量标签,另一种是附注标签。

  开发工具 最新文章
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-10-17 12:55:18  更:2022-10-17 12:59:01 
 
开发: 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 20:29:12-

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