Git的基本使用

一、Git架构

Git的基本使用_第1张图片

二、Git基本使用

创建版本库
  • 在工作空间的目录中,右键“Git Bash Here”打开git终端

  • 在Git终端中输入git init指令,创建版本库(就是一个.git目录)

查看版本库状态
git status
将工作空间的修改添加到暂存区
git add a.txt   ## 只将工作空间中的某个文件add到暂存区
git add . ## 将工作空间中所有文件都add暂存区
将暂存区内容提交到版本库(仓库)
git commit -m '版本说明'
查看版本库中的历史版本
git log --oneline  ## 每个版本信息只显示一行
get log  ## 显示每个版本的详细信息
回滚
git reset --soft HEAD^

这样就成功撤销了commit,如果想要连着add也撤销的话,–soft改为–hard(删除工作空间的改动代码)。

命令详解:

HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1 如果进行两次的commit,想要都撤回,可以使用HEAD~2

–soft 不删除工作空间的改动代码 ,撤销commit,不撤销git add file

–hard 删除工作空间的改动代码,撤销commit且撤销add

另外一点,如果commit注释写错了,先要改一下注释,有其他方法也能实现,如:

git commit --amend 这时候会进入vim编辑器,修改完成你要的注释后保存即可。

使用“git revert -n 版本号”反做,并使用“git commit -m 版本名”提交:
(1)反做,使用“git revert -n 版本号”命令。如下命令,我们反做版本号为8b89621的版本:

git revert -n 8b89621019c9adc6fc4d242cd41daeb13aeb9861

注意: 这里可能会出现冲突,那么需要手动修改冲突的文件。而且要git add 文件名。
(2)提交,使用“git commit -m 版本名”,如:

git commit -m "revert add text.txt" 

此时可以用“git log”查看本地的版本信息,可见多生成了一个新的版本,该版本反做了“add text.txt”版本,但是保留了“add text2.txt”版本:

设置用户信息

因为我们将暂存区的内容提交到版本时,会记录当前版本的提交的用户信息,因此在版本提交之前需要先绑定用户信息

git config --global user.name 'ergou'
git config --global user.email '[email protected]'
同步历史版本到工作空间
git checkout 版本号

三、远程仓库

远程仓库

远程仓库,远程版本库;实现版本库的远程存储,以实现团队的协同开发

如何获得远程仓库
  • 使用GitLab搭建私服
  • 远程仓库提供商
    • GitHub https://gitbub.com
    • Gitee(码云) https://gitee.com
    • Coding
创建远程仓库(码云)
  • 注册账号

  • 创建远程仓库

  • 远程仓库管理(添加开发人员)

四、远程仓库操作

push本地仓库到远程仓库
准备工作
  1. 创建本地工作空间

    D:\fmwy
    	src
    		main
    			java
    			resources
    		test
    			java
    	pom.xml
    
  2. 初始化本地仓库

    git init
    
  3. 将工作空间搭建的项目结构add到暂存区

    git add .
    
  4. 将暂存区文件提交到版本库,生成第一个版本

    git commit -m '创建项目'
    
  5. 为当前项目创建一个远程仓库

本地仓库关联远程仓库

建立本地仓库 和 远程仓库的关联

 git remote add origin https://gitee.com/xxxxx/xxxx.git
查看远程仓库状态
git remote -v
将本地仓库push到远程仓库

push到远程仓库需要gitee的帐号和密码

git push origin master
其他开发者pull远程仓库到本地

其他开发者:[email protected] *****

先创建本地仓库
  • 在E盘创建test目录(空目录),进入ws目录,打开Git客户端

  • 创建本地版本库

    git init
    
拉取远程仓库到本地
  • 拉取远程仓库

    git pull 远程仓库地址 master
    git pull 远程仓库地址2 master
    
解决协同开发冲突问题
场景:    Helloworld.java  [bbb]

开发者1:周瑜                             开发者2:小乔
-------------------------------------------------------------------------------------------
git pull xxx2 master                    git pull xxx2 master							
									     在Hellworld.java中新增内容 “bbb”
在Hellworld.java中新增内容 “aaa”
									     git add .
									     git commit -m ''
									     git push fmwy2 master
git add .
git commit -m ''
git push xxx2 master【会失败!!!----在我pull之后,push之前被其他开发人员push过】

问题:我该如何操作?
git pull fmwy2 master 【将小乔修改的内容拉取到我本地】

对文件进行冲突合并

git add .
git commit -m ''
git push fmwy2 maste

HelloWorld.java

>>>>>>>>>>>>>>>>>>>>>HEAD
aaa
=================
bbb
<<<<<<<<<<<<<<<<<<<<< sikdfhjkasdfhjasdfhjk

五、分支管理

什么是分支

分支就是版本库中记录版本位置(支线),分支之间项目会影响,使用分支可以对项目起到保护作用

分支就是一条时间线,每次提交就在这条时间线上形成一个版本

分支特性
  • 创建一个新的版本库,默认创建一个主分支—master分支
  • 每个分支可以进行单独管理(常规分支、保护分支、只读分支)
  • 分支是可以合并的
分支操作
创建分支
git branch branch_name
查看分支
git branch
切换分支
git branch branch_name  # 切换到指定分支上的最新版本
检出分支
git checkout 历史版本 -b branch_name  # 签出指定的历史版本创建新分支
分支合并
  • 三方合并
  • 快速合并
# 在master分支执行 git merge dev   表示将dev分支合并merge
git merge breanch_name

六、Idea整合Git使用

作为Java开发工程,我们代码的编写工作都是在IDE工具(idea)中完成,因此我们需要了解和掌握直接使用IDE工具完成Git的操作

IDEA关联Git
IDEA中Git版本管理

准备工作:打开IDEA新建一个web工程

创建本地版本库

在这里插入图片描述

设置忽略文件

在工作空间中有些文件是不需要记录到版本库中的(例如.idea、target、.iml文件),可以通过设置忽略提交来实现

  • 在工作空间的根目录(项目的根目录)中创建一个名为.gitignore文件

  • .gitignore文件配置忽略过滤条件

    .idea
    target
    *.iml
    
将工作空间add到暂存区
  • 选择项目/文件—右键—Git—Add(添加到暂存区的文件–绿色)

  • 如果一个文件创建好之后还没有添加到暂存区–棕红色

  • 添加到暂存区的操作可以设置默认添加

将暂存区提交到版本库
  • 选择项目/文件—右键—Git–Commit(记录到版本库的文件–黑色)

  • 如果对记录到 版本库的文件进行了修改,也就是说工作空间和版本库不一致–蓝色

IDEA中Git分支管理
创建分支
  • 点击IDEA右下角Git
  • 在弹窗中点击New Branch
  • 输入新分支的名称
切换分支
  • 点击IDEA右下角Git
  • 点击非当前分支右边的箭头
  • 在选项卡点击checkout
删除分支
点击右小角git
Git的基本使用_第2张图片
合并分支

例如:将dev合并到master

  • 切换到master分支
  • 点击dev分支右面的箭头,在展开的菜单中选择Merge into current
IDEA中使用Git进行团队协同开发
项目管理者
  1. 完成项目搭建

  2. 为当前项目创建本地版本库

  3. 将搭建好的项目提交到本地版本库

    • add到暂存区
    • commit到版本库
  4. 创建远程版本库(远程仓库)

    • 管理—添加开发者
  5. 将本地仓库push到远程仓库(master分支——master分支)

  6. 在本地创建dev分支

    在远程仓库checkout as 新建本地dev分支(master需要进行保护)

  7. 将本地dev分支push到远程仓库,新建远程仓库的dev分支

  8. 设置远程仓库中master分支为保护分支

项目开发者
  1. 从管理员提供的远程仓库pull项目到本地

    • 远程仓库
  2. 打开项目(此时本地工作空间的项目和远程仓库是同步的)

  3. 开发步骤:

    • 选择要修改的文件–pull
    • 进行修改操作
    • 测试本地修改
    • add到暂存区
    • commit到本地版本库
    • push到远程仓库(dev)
解决团队协同开发的冲突问题

冲突:在pull之后,push之前被其他开发者这push成功

  • 选择产生冲突的文件—pull
  • 弹出弹窗提示:accpet yours | accept theirs | Merge
    • accpet yours 保留自己的版本(提交时会覆盖其他开发者代码)
    • accpet theirs 保留远程仓库上的版本(会导致自己修改的代码丢失)
    • Merge 手动合并(和其他开发者沟通合并方案)

对于推送被拒的情况

​ 在远程仓库新建了README.md文件或远程仓库已有文件,而本地仓库为空与远程仓库还没有进行关联,因此需要将两个仓库的文件进行关联后提交。
切换到本地项目所在的目录中,右键选择GIT Bash Here

在弹出窗口中依次输入以下 git 命令:

git pull
    
git pull origin master

git pull origin master --allow-unrelated-histories

在idea中重新push自己的项目,如果还不成功,试着删除项目的.git文件夹,重新初始化git。

你可能感兴趣的:(git)