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操作
创建一个仓库
创建公钥,免除以后每次都需要登录的烦恼
-
在本地的git输入如下命令创建一个公钥(邮箱随便打)
ssh-keygen -t ed25519 -C "xxxxxs@.163com"
-
查看公钥的输出目录,去找到对应的公钥
-
将公钥复制一下,打开gitee对应的仓库,选择管理,添加一个公钥
-
接下来就可以使用SSH的方式来连接Gitee的远程仓库了
# 为ssh连接设置一个别名
git remote add myHome git@gitee.com:deng-qixing/git-study.git
# 拉取仓库
git pull myHome master
# 推送仓库
git push myHome master
添加团队成员
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的路径
为一个项目创建Git仓库
将项目文件都添加到暂存区
将项目提交到远程仓库(可以先创建一个远程仓库,也可以下载gitee插件操作)
在Gitee上创建一个私人令牌
演示通过gitee插件操作
使用私人令牌来登录
创建分支、切换分支、查看当前所在分支、合并分支
创建分支
切换分支
查看当前所在分支
合并分支
克隆项目到本地
自建代码托管平台GitLab
这个一个基于局域网的代码托管平台,适用于一些不打算将代码提交到互联网平台托管的企业。
下载与安装
# 安装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地址
-
会直接要求设置一个密码才能登录
-
登录时的账号默认为:
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