今天对Git进行了一个较为详细的学习。

Git的几个基本命令

Git分为工作区,暂存区,本地库

  1. 现在工作区中添加一个文件hello.txt
    image.png
  2. 将该文件添加到暂存区
    image.png
  3. 将该文件添加到本地库
    image.png
  4. 输入命令查看版本号信息
    image.png
  5. 新增其他版本
    image.png
  6. 版本之间变更
    git底层是通过head指针进行版本控制
    image.png

Git分支操作

  1. 添加分支
    image.png
  2. 删除分支
    image.png
  3. 分支切换
    image.png
  4. 分支合并(有冲突的情况需要自己手动修改后重新add,commit。且commit时不能含文件名)
    image.png

GitHub操作

  1. push
    image.png
  2. pull
    image.png
  3. clone
    image.png
  4. fork
    可以将项目fork到自己个人的github仓库,然后再clone到本地进行修改。
    image.png

clone和fork的区别

1.区别
git clone 是在自己电脑(这里我是ubuntu)直接敲命令,结果是将github仓库中的项目克隆到自己本地电脑中了
fork是直接访问github网站,在项目页面中点击fork,然后自己github项目中就会多出一个复制的项目
2.用法
如果我们想要修改他人github项目的话,我们直接git clone代码到本地是不能pull的,所以我们使用fork,先把代码复制到自己的github仓库,然后git clone到本地修改,然后在提交pull(这里的pull是pull到自己github仓库了,我们自己的github仓库中的代码是fork源的一个分支),这时候我们想要把修改的代码提交给他人的话,就可以在自己github上pull,等其他人看到后就可以把代码做一个合并

tips:
过程中出现的两个小问题

  1. 克隆后之前在github上做的修改日志也会被记录下来
    image.png
  2. 通过git log命令查看日志时,如果日志太长,结尾会显示END字符,无法输入其他指令,此时按q即可解决。

IDEA集成Git

先配置两个文件 git.ignore和.gitconfig

git.ignore

# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see 
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml

.gitconfig

[user]
	name = wjh
	email = 1787102205@qq.com
[core]
	excludesfile = C:/Users/qx/git.ignore

在设置里选择git的安装路径

image.png

将当前项目引入git进行版本控制

image.png
image.png

在IDEA中可以通过图形界面方便快捷的进行版本合并

image.png
image.png
image.png
IDEA永远的神!!!

在IDEA中使用GitHub

绑定github账号

介于github经常抽风,在IDEA中通过账号密码登录时会经常报错404,如下
image.png
这里我们可以通过token登录。
现在github官网生成一个token
image.png
将得到的token复制到IDEA中即可成功绑定账号
image.png

通过IDEA向github推送项目

传统向GitHub推送项目时,要先自己在GitHub账号下新建一个仓库,然后通过CLI输入push指令推送;但在IDEA中可以一键进行创建库和推送这两步操作,方便快捷。
image.png

image.png
成功提交到GitHub
image.png

image.png

拉取项目

GitHub太抽风了,接下来演示用gitee了
image.png

克隆项目

输入给到的链接
image.png
克隆成功
image.png

Q.E.D.