Git 概述
Git 是一个免费的、开源的
分布式版本控制系统
,可以快速高效地处理从小到大的各种项目。
版本控制工具分类:
- 集中式版本控制工具。CVS、SVN、VSS等。(版本控制在服务器上进行的)
- 分布式版本控制工具。Git、Mercurial、Bazaar等。
(版本控制在本地进行)
Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般称为
远程库
。
局域网:GitLab
互联网:GitHub(外网)、Gitee(国内网站)
Git 常用命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
删除暂存区文件:git rm --cached 文件名
查看详细日志:git log
。有完整版本信息、用户信息、时间。
文件中查看版本方式:进入.git文件,点击HEAD,查看指针指向哪个分支。根据查看内容进入这个分支目录,查看完整版本号。
文件修改:修改文件后,将文件添加到暂存区,再提交到本地库即可。
Git 分支操作
分支的概念:在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支以为这程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。
分支的好处:同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,若某个分支开发失败,不会影响其他分支。失败的分支删除重新开始即可。
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
分支合并(冲突合并):
合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法决定使用哪一个。必须人为决定新代码内容。
制造冲突:
修改同一个文件hot-fix添加到暂存区,提交到本地库,master也添加到暂存区,提交到本地库。此时将hot-fix分支合并到master中,报冲突了!在master中,手动将文件冲突的内容合并,然后将手动修改后的文件重新,添加到暂存区,提交到本地库。(注意
:此时提交本地库就不能再带命名了!)
合并分支,只会修改你要合并进去的那个分支,不会修改那个合并外的分支。
团队内协作:
跨团队协作:
Github操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 别名 远程地址 | 给远程地址起别名 |
git push 别名 分支 | 推动本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git clone -b 分支名 远程地址 | 将远程仓库的分支克隆到本地 |
git pull 远程库地址别名 远程分支名 | 将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并 |
克隆会做如下操作:
- 拉取代码
- 初始化本地仓库
- 创建别名
克隆无需登录,因为库是公共的。
推送代码到远程库,需是远程库中的成员。
配置SSH免密登录:
- 在本地生成.ssh秘钥目录:
ssh-keygen -t -rea -C 账号邮箱
,敲三次回车,即生成完毕。(生成公钥、私钥)
-t:用于指定加密协议
rsa:非对称加密协议
-C:是一个描述 - 在github配置公钥:
Idea集成Git
1. 配置Git忽略文件。
(忽略掉不重要的文件,因为与项目的实际功能无关)
- 创建忽略规则文件xxx.ignore(建议是叫 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
*.rar
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
- 在**.gitconfig**文件中引用忽略配置文件(此文件在Windows的家目录中)
[user]
name = Augenestern
email = .....@qq.com
[core]
excludesfile = C:/Users/Augenestern/git.ignore
注意:这里要使用"正斜线(/)",不要使用"反斜线(\)"
2. 在idea中定位Git程序
3. idea Git初始化、添加、提交
点击ok,就在当前项目下创建了.git目录,此时已经被git管理了。
4. 切换版本。
5. 创建分支
6. 合并分支
7. Idea设置GitHub账号
用口令需在Github上生成,如下图:
8. 分享项目到GitHub。
(1、先创建远程库。2、再push代码)
9. 推送代码到远程库。
方式一:
方式二:
点击push后,如下图操作:
10. 拉取远程库到本地
注意
:push是将本地库代码推送到远程库,如果本地库代码跟远程库代码版本不一致,push的操作是会被拒绝的。也就是说,想要push成功,一定要保证本地库的版本要比远程库的版本高!
因此,我们在手动改本地代码之前,要先检查下远程库跟本地库代码的区别!如果本地的代码版本已经落后,切记要先pull拉取一下远程库的代码,将本地代码更新到最新以后,然后再修改、提交、推送!
11. 克隆远程库到本地