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的使用--以及idea上的使用 -> 正文阅读

[开发工具]GIT的使用--以及idea上的使用

GIT的使用

git是一个版本管理的仓库,接下来就是版本的一些实战信息。

git 中文件的状态有 :暂存(staged)、已经修改(modified)、已经提交(commited)

下载安装好我们的git后,创建一个空文件夹1.然后进入这个文件夹里面,使用 **git init **创建仓库,使用命令后就会存在.git的文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pSjjbMc-1637327120959)(GIT的使用.assets/image-20211119110856301.png)]

本地管理

创建一个文件1.txt

image-20211119111012589

这个时候文件并不属于这个版本管理仓库,因为还没有执行文件的三个状态。使用git status查看这个目录中的文件状态。表示这个文件还没有被追踪。使用 git add 1.txt将文件加到暂存区中。

image-20211119111139868

再次查询状态,发现暂存区中已经有了一个文件,现在我们可以对这个文件进行提交或者删除。

image-20211119111318142

但我们修改这个文件中的内容后,再次查看状态,会发现这个已经被修改了。但是我们依旧可以提交我们暂存区的内容git commit -m ‘first use’ 。命令中的m表示注释,这里的注释的内容是文本中的内容。

image-20211119111503272

再次查询状态,发现暂存区中已经没有文件了,因为已经被提交了。

image-20211119111740053

通过命令git log可以看到我们的提交日志

image-20211119111853166

接下来将修改的文件第二次提交git commit -m ‘first use1’ 。注释依旧是文本中的内容。查看提交日志可以看到我们每次提交的信息

image-20211119112120302

image-20211119113539468

当我们提交的次数很多的时候,我们可以对git log -条数 --pretty=oneline进行参数的控制。

image-20211119112556677

上图我们会发现我们的head指针是指向我们最后一次提交的,所以要想控制版本,我们将head指向其他的就行。

image-20211119113900383

版本控制

版本的回退

我们的版本目前有2个:first use1和first use。**git reset --hard HEAD^该命令表示将指针指向上一次的提交:first use。^**控制版本回退的次数:**git reset --hard HEAD^^**表示退回到当前版本的前2个版本【3->1】

也可以使用git reset --hard HEAD~数量,表示回退的版本数量

image-20211119114119435

image-20211119114158637

这个时候我们的1.txt中的内容也发生了改变

image-20211119114421043

跳到未来的版本

当我们跳到之前的版本的时候,使用git log会显示不出未来的日志的,所以使用新的命令查看操作日志 reglog

#查看所有的执行log
git reflog
df4c499 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
ba1a4f1 HEAD@{1}: commit: first use1
df4c499 (HEAD -> master) HEAD@{2}: commit (initial): first use

找到想要跳的版本号,执行命令就可

$ git reset --hard "ba1a4f1"
HEAD is now at ba1a4f1 first use1

查询日志,可以看到Head指向了first use1。此时我们的文件内容已经发生了改变

$ git log -2 --pretty=oneline
ba1a4f1f40bde45fdf3f9cbbfbdaa0695d350625 (HEAD -> master) first use1
df4c49908a0ea3d3372fd8f38621d7309f3c6707 first use

image-20211119120443969

检出版本

当我们本地文件的1.txt文件被删除的时候,我们可以使用checkout 命令将删除的文件进行恢复

$ git checkout -- 1.txt(文件名)

删除文件

先将一个新的文件2.txt提交到仓库。使用 git ls-files查看仓库中的所有文件

$ git ls-files
1.txt
2.txt

使用命令rm删除仓库的内容,同时删除我们本地的内容。此时就不能再检出了

$ git rm 2.txt
rm '2.txt'
$ git ls-files
1.txt
$ git commit

远程仓库

将项目拷贝到本地

$ git clone url

然后和上面一样操作一些commit

将本地库推送到云端

百度ssh配置git

检查ssh账户配置

#验证SSH是否成功
$ ssh -T git@gitee.com 
如果有提示,直接yes,再次执行会提示 successful

执行流程

git init
git add .
git commit -m '注释'
#远程的url绑定到该项目,同时取别名 origin
git remote add origin url
#将本地的仓库推送到url上
git push -u origin master


#查看本地仓库对应的远程仓库

$ git remote -v

当我们使用远程地址绑定的时候,需要注意远程仓库的地址:https还有ssh,如果配置类ssh就可以使用ssh

$ git remote add feature1 git@gitee.com:P65782152/java_study_heima.git

执行推送的时候报错:需要我们先pull一下

$ git push -u feature1 master
    To gitee.com:P65782152/java_study_heima.git
     ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'git@gitee.com:P65782152/java_study_heima.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Integrate the remote changes (e.g.
    hint: 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.

使用pull报错:说明两个仓库不相关,拒绝merge 不相关的历史, 因为本地也有提交。

$ git pull feature1 feature #第一个feature1是地址的别名,feature是远程地址的分支名
    From gitee.com:P65782152/java_study_heima
     * branch            feature    -> FETCH_HEAD
    fatal: refusing to merge unrelated histories

解决办法

使用允许无关联的历史记录的参数拉取之后再 push

$ git pull feature1 feature --allow-unrelated-histories
    From gitee.com:P65782152/java_study_heima
     * branch            feature    -> FETCH_HEAD
    Merge made by the 'recursive' strategy.
     .gitignore | 23 +++++++++++++++++++++++
     1 file changed, 23 insertions(+)
     create mode 100644 .gitignore

或者使用如下命令

git push -u origin master -f

再次执行push

$ git push feature1 master
    Enumerating objects: 13, done.
    Counting objects: 100% (13/13), done.
    Delta compression using up to 8 threads
    Compressing objects: 100% (7/7), done.
    Writing objects: 100% (12/12), 1.08 KiB | 553.00 KiB/s, done.
    Total 12 (delta 0), reused 0 (delta 0)
    remote: Powered by GITEE.COM [GNK-6.2]
    To gitee.com:P65782152/java_study_heima.git
       6263f15..f58c100  master -> master

分支管理

git checkout branch #切换分支
git checkout -b new_brach #新建分支且切换到新分支
git checkout -d brach #删除分支
git branch  # 查看所有的分支 *为当前分支
git merge branch # 合并分支
git branch -m|-M oldbranch newbranch  #重命名分支

本地的分支

$ git branch
	* master
$ git checkout -b dev
$ git branch
    * dev
      master
      
#创建文件2
$ touch 2.txt
$ git add 2.txt
$ git commit -m '分支dev的提交文件2'
$ git ls-files
    .gitignore
    1.txt
    2.txt

#切换到master分支
$ git checkout master
	Switched to branch 'master'
$ git ls-files
    .gitignore
    1.txt
    
#可以看到主分支是没有2.txt文件的,所以我们可以执行合并 merge
$ git merge dev
    Updating f58c100..6cf309b
    Fast-forward
     2.txt | 0
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 2.txt
 $ git ls-files
    .gitignore
    1.txt
    2.txt

image-20211119135035298

分支的Push和PUll

git branch -a #查看所有的分支
git push origin beanchname #推送本地分支到远程
gti push origin :remotebranch #删除远程分支(本地分支还在)
git checkout -b localbranch origin/remotebranch # 拉取远程的分支并且在本地创建分支

标签管理

tag

idea的使用

idea中创建仓库->add->commit->remote->push

  开发工具 最新文章
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-20 18:36:11  更:2021-11-20 18:37:03 
 
开发: 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:37:40-

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