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 init; ?

安装完git以后初始化一下,创建仓库;初始化在另一篇里面有

  • git status;?? ?

查看当前仓库信息,被修改的文件显示红色;

  • git add;?? ?

把文件加入暂存区;如果想把当前目录中所有文件都加入暂存区,使用"git add.",会把文件从红色变成绿色;

  • git commmit -m <message>;

提交暂存区的文件,-m是指加上后面的描述<message>,比如git commmit -m "first commit";?

?

  • git log; ?

commmit以后可以查看提交日志

  • git reset;

把绿色文件变回红色,可以在commit之前使用,相当于git add的反向操作。

  • 文件状态:
  1. 首先如果是新建文件属于untracked状态,如果是已经存在的文件我们对他进行了修改就属于modified状态;
  2. 使用git add就成为staged(绿色)。
  3. 再commit就成为unmodified。

git时对比仓库和现有文件的差异,如果一致则为unmodified,所以我们commit成功以后,远程仓库也就和本地一样,所以状态为unmodified。

?

  • git reset <commitID>:
  1. git reset <commitID> --hard ?不保存所有变更(所有文件都会回退到commitID对应的那个状态)
  2. git reset <commitID> --soft?? ?保留变更并且变更内容处于staged
  3. git reset <commitID> --mixed 保留变更并且变更内容处于modified(如果git reset <commitID>不带参数,默认是mixed)

如果想要回退到某一次的commit,可以通过git log找到提交日志,找到那次的commitID,然后操作:

?

再次使用git log发现第六次提交记录消失了:?

?

?

  • git reflog:

查看所有操作记录。比如我们刚才回退到第五次提交,然后log里第六次的就没了。我们又想回到第六次的,可以reflog查看操作记录,然后再回到第六次的。(不过如果是想回到最新的版本,直接git pull就行了)

?

  • git checkout -b <name> <template>:

创建新的分支;name--新分支名字;template--以哪个分支或commit为模板,如果不填则以当前分支为模板,模板意思就是新分支把当前分支的commit记录复制一遍。
如果template不是本地而是远程仓库需要加个origin:git checkout -b <name> origin <template>

?

  • git checkout <branchName>:

切换分支,比如git checkout master;

  • git branch:

查看所有分支,只能展示本地的分支,如果我们通过git fetch拉取了远程仓库的新分支,这个命令其实是看不到拉取的新分支,不过我们可以切换过去;

  • git merge <branchName>:

合并分支,也就是把branchName分支和我们当前的分支(一般是master)合并,比如我们合并了一个a分支和一个b分支,合并a的时候只新增了文件1.java,合并b分支时b也写了1.java。这时候需要手动解决冲突,然后add、commit;

  • git fetch:

拉取远程仓库分支到本地仓库。可以用git checkout <branchName>切换拉取到的新分支。

git fetch是将远程主机的最新内容拉到本地仓库,用户在检查了以后决定是否合并到工作本机分支中(想合并的话checkout新分支即可)。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

?

  • git rebase:

变基,一般是根据一个分支来改变我们这个分支。

比如我们有个master分支,然后checkout了一个feature分支以后,master、feature都commit了一些操作:

?

这时如果我们想要合并master、feature的提交,使用rebase的话就会从共同祖先(B这个commit)开始,把当前分支(feature)做的commit复制一份插入master分支,然后删除原来的提交C和D(他们的提交内容一样,但commit id不同。feature自然最后也是指向D’)

git checkout feature
git rebase master
//这两条命令等价于直接git rebase master feature


????????上面的例子可抽象为如下实际工作场景:

?

  1. 张三从B拉了代码进行开发,目前提交了两次,开发到D了;
  2. 李四也从B拉出来开发了并且开发完毕,他提交到了M,然后合到主干上了。
  3. 此时张三想拉下最新代码,于是他在feature分支上执行了git rebase master,即把master分支给rebase过来,由于李四更早开发完并合了主干,如此就相当于张三是基于李四的最新提交M进行的开发了。
  开发工具 最新文章
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-03-30 18:46:03  更:2022-03-30 18:48:33 
 
开发: 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/26 4:20:41-

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