JAVA入门基础_Git入门使用

Git概述及下载安装

集中式版本控制与分布式版本控制概述

Git与SVN不同,属于分布式版本控制工具,而SVN是集中式版本控制工具

  • 集中式版本控制:版本的控制集中在统一的远程库当中

  • 分布式版本控制:每一台计算机都可以是一个个的版本控制系统,版本控制可以在本地进行,每台计算机都有完整的项目,并且都有着历史记录。

Git下载与安装

下载地址

Git常用命令

Git所覆盖的区域

  • 工作区(代码存放的地方)

  • 暂存区(暂存区的文件可以被Git所追踪)

  • 本地库(代码提交到本地库后将会存有历史记录,并且可以推送到远程仓库)

  • 远程库(代码托管平台,例如github、gitee)

全局用户名和邮箱、仓库状态、初始化、添加删除暂存区、提交到本地库、查看历史记录、版本穿梭

# 设置全局的用户和邮箱(跟代码托管平台没有任何关系)
git config --global user.name=codestars
git config --global user.email=codestars@163.com

# 初始化一个本地仓库
git init
# 查看仓库的状态
git status
# 将文件添加到暂存区、添加所有文件 | 添加单个文件
git add . | git add hello.txt
# 将文件从暂存区删除
git rm --cache hello.txt
# 将文件提交到本地库,如果不指定文件,则默认全部提交
git commit -m "第一次提交" hello.txt
# 查看历史记录(精简|详细)
git reflog | git log
# 版本穿梭
git reset --hard 版本号

分支常用命令(查看、添加、切换、合并)

# 查看当前分支情况
git branch -v 
# 添加一个分支
git branch 分支名称
# 切换到指定分支
git checkout 分支名称
# 合并分支
git merge 分支名称

远程仓库命令(查看别名、创建别名、推送、拉取、克隆)

# 查看别名
git remote -v
# 创建别名
git remote add 别名 远程地址
# 推送
git push 别名|地址 分支
# 拉取
git pull 别名|地址 分支
# 克隆(注意:会帮我们做三件事:1、拉取代码 2、初始化仓库init 3、创建别名 origin)
git clone 地址

解决冲突的方法

# 查看当前冲突的文件
git status
# 修改冲突的文件,
vim 文件名
# 修改后将其添加到暂存区
git add hello.txt
# 提交到本地库(注意别选择具体文件)
git commit -m "解决冲突了"

cherry-pick

git cherry-pick <commit-hash> 

其中的commit-hash指的是提交记录的标志

团队协作的机制

团队内合作(注意团队协作的权限问题)

  • 先建立一个远程库

  • 将远程库clone到本地

  • 将代码修改后push到远程库

# 查看当前的别名
git remote -v
# 添加别名
git remote add 别名  远程库地址
# 提交本地库文件到远程库
git push 远程库地址或别名 分支名称`
  • 将其他人写好的代码pull到本地库
git pull 远程库地址或别名 分支名称

邀请成员加入团队

跨团队合作

  • 非本团队的成员需要在远程库中将项目进行fork复制到自己的远程仓库

  • 修改代码并提交后,发起一个pull request

  • 原本的团队人员如何采纳率这个pull reqeust,则会将该代码合并到它自己的远程仓库

Gitee操作

创建一个仓库

image

创建公钥,免除以后每次都需要登录的烦恼

  • 在本地的git输入如下命令创建一个公钥(邮箱随便打)
    ssh-keygen -t ed25519 -C "xxxxxs@.163com"

  • 查看公钥的输出目录,去找到对应的公钥
    image

  • 将公钥复制一下,打开gitee对应的仓库,选择管理,添加一个公钥
    image

  • 接下来就可以使用SSH的方式来连接Gitee的远程仓库了

# 为ssh连接设置一个别名
git remote add myHome git@gitee.com:deng-qixing/git-study.git

# 拉取仓库
git pull myHome master

# 推送仓库
git push myHome master

添加团队成员

image

IDEA集成Git

配置Git忽略文件

  • 在任意目录创建一个 git.ignore文件(建议不放在中文目录,名字可以随意,但是后缀必须为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
hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml
  • 在.gitconfig文件中引用忽略配置(该文件在Windows的家目录中)
    (注意:不要用路径不要用反斜杠)
[user]
	name = codestars
	email = codestars@163.com
[core]
	excludesfile = D:/a_dev_software/Git/git.ignore

打开IDEA的设置,选择当前git.exe的路径

image

为一个项目创建Git仓库

image

将项目文件都添加到暂存区

image

将项目提交到远程仓库(可以先创建一个远程仓库,也可以下载gitee插件操作)

image

在Gitee上创建一个私人令牌

image

演示通过gitee插件操作

image

使用私人令牌来登录

image
image

创建分支、切换分支、查看当前所在分支、合并分支

创建分支

image

切换分支

image

查看当前所在分支

image

合并分支

image

克隆项目到本地

image

自建代码托管平台GitLab

这个一个基于局域网的代码托管平台,适用于一些不打算将代码提交到互联网平台托管的企业。

下载与安装

  • 下载地址

  • 由于在线下载安装太久,推荐下载npm包下载,下载地址

  • 准备一个系统为 CentOS7 以上版本的服务器,要求内存 4G,磁盘 50G。

  • 将npm包放在/opt目录下

# 安装gitlab
rpm -ivh gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm

# 按照官网安装远程连接必备的软件
sudo yum install -y curl policycoreutils-python openssh-server perl
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

初始化GitLab服务(需要耐心等待一段时间~!!!!)

# 初始化
gitlab-ctl reconfigure

# 启动
gitlab-ctl start

# 关闭
gitlab-ctl stop

使用浏览器访问

http://192.168.22.23/:80
这里写你自己的ip地址

  • 会直接要求设置一个密码才能登录
    image

  • 登录时的账号默认为:root

Git使用过程中出现的问题

出现error: Your local changes to the following files would be overwritten by merge 报错信息

使用如下3个命令即可解决

git stash
git pull origin master
git stash pop
posted @ 2022-09-04 22:05  CodeStars  阅读(97)  评论(0编辑  收藏  举报