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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下