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常用命令

1、进入项目目录:

cd 项目目录的路径 ? ?  #进入项目目录

2、初始化本地git仓库:

git init ? ?  
#初始化一个git仓库(repository),初始化完成之后会在项目目录中自动创建一个.git隐藏文件夹,此文件夹是git的版本记录,用来跟踪或者管理git仓库

3、查看版本库的状态:

git status ? ?      #查看当前git仓库的状态
git status -s ?     #简单方式查看git仓库的状态
三种状态
1.untraked file (工作区的文件未被跟踪的文件: 新建的文件没被暂存)
2.changes to be commited(暂存区的文件,将要被提交的修改: 文件已经被存入暂存区,还没有提交到本地仓库)
3.changes not staged for commit(没有准备提交的修改或文件之前提交过,然后进行了修改但还未add)

4、查看修改的内容:

git diff                 #可以查看修改内容

5、把工作区的文件添加到暂存区:

git add 文件名 ?   #把没有添加到暂存区的文件添加到暂存区(文件名可写多个)
git add . ? ? ?     #把工作区没有添加到暂存区文件全部添加到暂存区(一次添加多个)

6、把缓存区的文件提交到本地仓库

git commit -m 备注信息      #把加入暂存区的文件提交到本地仓库(实际上就是把暂存区的所有内容提交到当前分支)

7、查看版本库的历史操作记录

git log ? ?         #查看git操作的详细历史记录
比如:
commit b979bc1782e8f56750554323474da72ebca03553 
#本次操作的版本号(commit id 版本号是唯一的)

Author: jinxizhen <842166299@qq.com> ? ? ? ? ?  #用户信息
Date: ? Thu Jan 19 11:40:55 2017 +0800 ? ? ? ?  #提交的日期
?
 ? 初始化了git仓库并创建index.txt ? ? ? ? ? ? ? ?  #提交的备注信息

git log --oneline ?     #把git操作日志简化为一行显示
?
git log --pretty=oneline  #简化信息,方便查看
?
git reflog ? ? ? ?      #查看操作命令及日志

版本回退

第一种:修改的内容还没有添加到暂存区

git checkout -- 文件名 ? ? #撤销工作区最后一次修改的内容,前提是修改的内容还没有添加到暂存区

第二种:修改的内容已经添加到暂存区,但是还没有提交到本地仓库

先使用 git reset HEAD 文件名 ? ?  #撤销添加到暂存区的内容
再使用 git checkout -- 文件名       #回退到上一个状态

第三种:修改的内容已经提交到了本地仓库

git reset --hard HEAD^ //回退到当前工作区版本的上一个版本
  HEAD^:上一个版本
  HEAD^^:上上一个版本
  HEAD~100:上100个版本
?
如果已经记不清是上几个版本了,直接使用版本id
git reset --hard 版本id ?  #回退到指定的版本号的状态 ? ? ? 
    版本id就是commit提交时产生的id

分支操作

每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支,所以分支就是一条commit时间线。

一个项目可以对应多条分支,也可以对应一条分支

HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

preview

创建分支并切换两步完成:

git branch 分支名 ? ?  #创建一个分支
git checkout 分支名 ?  #切换到指定的分支

创建分支并切换一步完成:

git checkout -b 分支名 #创建一个分支,并切换到分支(相当于创建+切换)

查看所有分支:

git branch ? ? ? ? ?  #查看所有分支,当前的分之前会有一个*符号

合并分支:

git merge 分支名 ? ? ? ? #合并指定分支的内容到当前分支,fast forward模式
git merge --no-ff 分支名 #可以看出曾经合并过

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。--no-ff参数,表示禁用Fast forward

删除分支:

git branch -d 分支名  #删除分支
git branch -D 分支名  #强行删除

查看分支合并图:

git log --graph      #查看分支合并信息
git log --graph --pretty=oneline --abbrev-commit  #简化信息

本地分支与远程分支同步:

git checkout -b branch-name origin/branch-name  #在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name  #建立本地分支和远程分支的关联

标签管理

一个版本库保存一个分支master,各自的版本库保存着各自的分支,各自的主分支名称都为master。 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。

标签是指向某个commit的指针

打标签:

git tag <name> #默认标签是打在最新提交的commit上
git tag <name> commit-id(可选)
git tag -a <name> -m '说明' commit-id(可选)

查看标签

git tag

查看标签信息

git show <tagname>

删除标签

git tag -d <tagname> (本地)

推送标签到远程:

git push origin <tagname>  #推送单个
git push origin --tags  #推送多个
  开发工具 最新文章
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常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-24 08:09:39  更:2021-11-24 08:10:25 
 
开发: 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/15 18:19:59-

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