Git GitHub Gitee
一、Git
是一个免费、开源的分布式版本控制系统。
版本控制:一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。它最重要的就是可以记录文件修改历史记录,从而让用户可以看历史版本,方便版本切换。
1.和集中式版本控制的不同:(好处)
1.在服务器断网的时候也能开发(因为版本控制是在本地进行的),只是无法推送而已。
2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)。
2.代码托管中心(远程库)
局域网:GitLab
互联网:GitHub(外网) Gitee 码云(国内)
在工作区写代码-》git add 添加暂存区(临时存储)-》git commit 提交本地库->远程库
3.安装
https://www.bilibili.com/video/BV1vy4y1s7k6?vd_source=2e59157694b34bea872c5ba2c5a5de9f&spm_id_from=333.788.player.switch&p=7
4.常用命令
# 设置全局用户名(签名)
git config --global user.name 你的用户名
# 设置全局邮箱
git config --global user.email 你的邮箱
#初始化本地库
git init
#查看本地库状态
git status
#添加暂存区
git add 文件名
#提交本地库
git commit -m "日志信息(可以写版本)" 文件名
#查看版本信息 即日志信息
git reflog
#查看详细的日志信息
git log
#版本穿梭
git reset --hard 版本号
注意:
-
签名是为了区分不同操作者身份,签名信息在每一个版本提交信息中能够看到,依次确认本次提交是谁做的。Git首次安装必须设置用户签名,否则无法提交代码。
-
Git初始化完,在该项目所在文件夹下边有一个.git隐藏文件夹。
-
Git版本穿梭,本质上就是底层指针的移动。
5.分支操作
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着可以把自己的工作从开发主线上分离开来,开发自己分支的时候不会影响主线分支的运行。
对初学者而言,可以将其简单理解成副本,一个分支就是一个单独的副本。(分支底层也是指针的引用)
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
#查看分支
git branch -v
#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#合并分支
git merge 要合并的分支名
-
产生冲突原因:合并分支的时候,两个分支在同一个文件的同一个位置有两套完全不同的修改。git无法决定使用哪一个,必须人为决定。
-
解决冲突:删除不要的行,保证原来总行数不变,保存文件,添加暂存区,执行提交即可。(但此时提交不能带文件名,发现后面的merging消失,即当前所在分支合并成功)
-
切换分支的本质就是移动head指针。
6.团队协作机制
-
团队内协作
-
跨团队协作
二、GitHub
1.创建远程库(直接'+'就好啦)
2.操作远程库
#创建远程库别名
git remote add 别名 远程地址
#查看当前远程别名
git remote -v
#推送
git push 别名 分支
#拉取远程库到本地库
git pull 别名 分支
#克隆远程库到本地
git clone 远程地址
-
克隆代码不需要登录账号
-
clone会做如下操作:1.拉取代码 2.初始化本地库 3、创建别名(默认origin)
3.团队内协作
进入github-》settings-》manage access-》invite a collaborator
被邀请人复制邀请函 accept
4.跨团队协作
点击fork->pull requests->new pull request->create pull request->merge pull request
5.SSH免密登录
//在c盘用户目录下运行git终端 运行下面命令 连敲三个回车
ssh-keygen -t rsa -C 邮箱地址
-
如果在这个地方没有找到且隐藏文件已经打开还是没有怎么办?
1.可能是没有执行成功。ls -al ~/.ssh 如果看到 id_rsa
和 id_rsa.pub
文件,说明已有密钥。
ls -a ~/ # -a 参数显示所有文件(包括隐藏文件)两个命令都可
2.SSH 密钥生成在其他位置:cd ~ && pwd -W
这会显示 ~
对应的 Windows 绝对路径(例如 C:/Users/lenovo
),如果输出不是 C:/Users/lenovo
,说明 Git Bash 的 ~
映射到了其他位置。
3.修改 Git Bash 的 HOME
设置,修改 Windows 环境变量 HOME
。在高级环境变量下,在用户变量部分,检查有没有HOME变量,如果存在,就修改为%USERPROFILE%;若不存在,可以 新建 一个 HOME
变量,值设为 %USERPROFILE%
。
-
复制公钥到个人中心的settings-》SSH and GDP keys->如下界面 添加成功
三、idea集成git
1.配置Git忽略文件
-
在刚刚用户目录创建txt文件,重命名为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
*.rarhs_err_pid*.classpath
.project
.settings
target
.idea
*.iml
-
在git.config中添加保存
2.定位git程序
3.初始化&添加&提交
-
在终端git init 或者在idea的VCS里边点击create git repository
-
可以直接在项目根目录右键git-》add
-
同理,直接commit
4.切换版本
右下的两个指针,绿色的是当前分支的指针,黄色的是当前这个看到的界面的头指针
右键 找checkout那个选项
5.创建分支&切换分支&合并分支
四、idea集成GitHub
1.登录(账户密码或者使用token)
2.分享项目
VCS-》share project to github-》
3.推送拉取
右键git就有push pull
-
注意:要想push成功,一定要保证本地库的版本要比远程库的版本高!也就是说,在修改本地代码之前,要先检查代码版本,如果本地版本已经落后,要先pull拉取远程库,在修改提交推送。
4.克隆代码到本地
五、码云(Gitee)
https://gitee.com/
1.注册登录&创建远程库(和上边的一样步骤)
2.idea集成
默认没有Gitee,需要下载
重启idea 在version下边就有了gitee
3.导入github项目
在新建仓库的时候什么都不用填,到最下边点击导入已有仓库,复制url地址(http协议)导入即可。
六、Gitlab
需要部署在服务器上