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 项目,直接 clone 远程 git 项目:

  • git clone <远程仓库地址>。克隆远程仓库的 master 分支。

  • git clone -b 分支名 <远程仓库地址>。克隆远程仓库指定分支。(本地目录名和远程仓库名一样,本地分支名默认和远程分支名一样)

    或 git clone --branch 分支名 <远程仓库地址>。

  • git clone -b 分支名 <远程仓库地址> <本地目录名>。克隆远程仓库指定分支到本地指定目录。(本地分支名默认和远程分支名一样)

本地与远程已关联,拉取远程分支:

  • git pull <远程主机名> <远程分支名>:<本地分支名> :拉取指定的远程分支到本地指定的分支并合并。

    • git pull origin branch :拉取远程分支 branch 到当前分支并合并。
    • git pull origin master:branch :拉取远程 master 分支到本地 branch 分支并合并。
  • git pull 和 git fetch 的区别:git pull = git fetch + git merge

    • git fetch <远程主机名> <远程分支名> :拉取某个分支

      或 git fetch <远程主机名> :拉取所有分支

    • git merge <远程主机名> /<远程分支名> :合并远程分支

  • git checkout -b 本地分支名 origin/远程分支名 :该命令在本地新建一个分支,同时切换到新建的本地分支中,并与远程分支关联,将远程仓库里指定的分支拉取到该分支。

提交代码

添加到暂存区

  • git add . :添加所有改动和新增的文件到暂存区。

提交到本地仓库

  • git commit -m “版本描述”

推送到远程仓库

  • git push origin 分支名

回滚操作

在 idea 中,使用 git 管理的项目时:

  • 若新增一个文件,文件名显示为红色。此时文件在工作区,表示该文件未纳入 git 版本管理。

  • 使用 git add 命令后,文件名变为绿色。此时文件添加到暂存区,表示该文件纳入 git 版本管理,会被 git 跟踪。

    在对已有的文件进行修改后,使用 git status 命令查看状态,文件名是红色,提示需要 add 和 commit。

  • 使用 git commit 命令后,文件名变为灰色。此时文件已提交到本地仓库(版本库)。

回滚已修改未 add:(在工作区)

若文件被修改,想取消修改回退到修改前的状态,使用命令:

  • git checkout – text.txt :回退指定修改的文件。
  • git checkout – . :回退所有修改的文件。

注意:

  • 如果是在工作区修改,回退到工作区修改之前的版本状态(最近版本)。
  • 如果是在暂存区修改,回退到 add 提交之后的状态。也就是 add 后,又修改了文件,回退到 add 后的状态。(最近一次 add)

回滚已 add 未 commit:(暂存区)

文件已经添加到暂存区进行跟踪,想回退取消对文件的跟踪管理,重新放回工作区。

  • git reset HEAD text.txt :回退暂存区中指定的文件,并放回工作区。
  • git reset HEAD . :回退暂存区中所有的文件,并放回工作区。

回滚已 commit:(版本库)

文件已经提交到本地仓库,想回退到上一个版本。

  • git reset --hard HEAD^ :回退到当前分支的上一个版本。
  • git reset --hard HEAD^^ :回退到当前分支的上上一个版本。
  • git reset --hard HEAD~10 :回退到距当前分支的过去的10个版本。

回退到当前版本 add 之前的状态

  • git reset HEAD^

根据 commit id 回退到指定版本。

  • 首先使用 git log 命令查看历史提交的记录信息(包含 commit id)

    使用 git log --pretty=oneline 可以简化记录信息。

  • 然后使用 git reset --hard <commit id> 命令回退到历史的指定版本。

根据 commit id 回退到未来的版本。若回退到历史某个版本,又想回到该版本之后的未来版本。

  • 首先使用 git reflog 命令查看所有提交的记录信息。(包含 commit id)
  • 然后使用 git reset --hard <commit id> 命令回退到未来的指定版本。

git revert 和 git reset 的区别:

  • git reset 回退到某个历史版本,在该历史版本之后的提交记录会被删除;git revert 回退到某个历史版本,是通过重新 commit 该历史版本来回滚,这样所有的提交记录还存在。

git reset 中可以使用的模式(git soft、mixed、hard)区别:

  • –soft:回退到当前版本 add 之后,待 commit 的状态。(修改文件还保存在暂存区)
  • –mixed: 回退到当前版本 add 之前的状态。(修改文件移除暂存区,保存在工作区)
  • –hard:直接回退到上一个版本。

回滚已 push:(远程仓库)

该版本已经 commit 并且 push 了,想把远程仓库的版本回退到上一个版本。

  • 首先回退到指定版本,git reset --hard HEAD^
  • 然后强行推送到远程分支,git push origin master -f 。本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支。

如果多人合作想回退自己写的代码,使用 git reset 回退版本会把别人提交的版本一起回滚到某个历史版本,这肯定是不行的。

  • 这个时候应该使用 git revert。git revert 会产生一个新的 commit。git revert 是将当前版本根据回退到的指定版本进行反转,如历史版本为 “11”,当前版本修改为 “1122”,反转后就变为 “11”,然后再 commit,产生一次新的提交。并且在进行回滚的时候,该命令不会反转修改或丢掉别人提交的代码,只会更改自己的代码。

    • git revert HEAD :重新 commit 上一个版本

    • git revert HEAD~1 :重新 commit 上上一个版本

    • git revert <commit id> 重新 commit 指定版本

  • 然后再 git push origin master。因为是新的一次提交,所以远程版本是落后当前版本的,直接 push,不需要强推。

总结:如果是一个人的分支,回滚直接用 reset;如果是多人参与的分支,回滚使用 revert。

  开发工具 最新文章
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-12-25 11:29:10  更:2022-12-25 11:29:41 
 
开发: 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:52:49-

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