一、Git简介

git官网下载

什么是Git?

代码版本控制工具

一款版本控制工具
image.png
Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小到大的项目。
Git易于学习,占用空间小,性能快如闪电。
它超越了像Subversion、CVS、Perforce和ClearCase这样的配置管理工具,具有廉价的本地分支、方便的staging区域和多个工作流等特性。

一款版本控制工具

发展历史

1.U盘

2.svn 集中式 多个svn客户端上传到一个svn服务器

  1. 优点:1自带代码对比工具2每一次提交记录
  2. 缺点 公司内网,回家不能离线使用 svn服务器一旦挂掉,无人可救

3.git 分布式 (分布到每个人的仓库)linux开发者

  1. 优点:1自带代码对比工具2每一次提交记录
  2. A 本地仓库 有记录 脱机使用
  3. B push到远程仓库 服务器挂掉,每个人都有记录,影响比较小 pull拉取 push推送

流程图

image.png

image.png

Git使用流程

  1. git init 初始化本地仓库
  2. git add . 添加所有到暂存区
  3. git status 查看状态
  4. git commit -m '第一次提交' 提交到本地仓库
  5. git log 查看提交记录
  6. git reset --hard HEAD^ 回退一个版本 git reset --hard HEAD~3 回退三个版本
  7. git reflog 查看操作记录 用于回退后再恢复
  8. git reset --hard 6位版本号码
  9. git remote add origin 仓库地址 源地址
  10. git push -u origin master
  11. git remote -v 查看别名 url太长了记不住,就创建一个别名
  12. git remote add 别名 url

    二、git操作

    首次安装需要做的 确定是哪个人的代码,和将来degithub账号没有关系

    1.设置名字和邮箱

    1. git config --global user.name "name"
    2. git config --global user.email "123@qq.com"
    image.png
    可以在文件中查看

image.png

2.初始化

  1. git init

会生成 .git文件
image.png

3.配置git 忽略文件

不让一些文件上传

  1. # Compiled class file
  2. *.class
  3. # Log file
  4. *.log
  5. # BlueJ files
  6. *.ctxt
  7. # Mobile Tools for Java (J2ME)
  8. .mtj.tmp/
  9. # Package Files #
  10. *.jar
  11. *.war
  12. *.nar
  13. *.ear
  14. *.zip
  15. *.tar.gz
  16. *.rar
  17. # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
  18. hs_err_pid*
  19. .classpath
  20. .project
  21. .settings
  22. target
  23. .idea
  24. *.iml

4.生成公钥

  1. ssh-keygen -t rsa

image.png
image.pngimage.png

5.常见命令

  1. touch <file> 创建文件
  2. git add <file> 提交到暂存区 git add. . 表示通配符
  3. git rm --cashed hello.txt 从暂存区删除--》未被追踪
  4. git commit -m "日志" <file> 提交本地仓库 m:message的意思
  5. git push 远程仓库
  6. git status 查看状态
  7. git reset --hard <ip> 版本穿梭(回退)
  8. git reflog 查看提交日志
  9. git log 查看详细提交日志
  10. git branch -d <分支文件> 从其他分支删除
  11. git branch -D <分支文件> master分支上强制删除

6.分支

1.创建分支

  1. git branch hot-fix

git学习笔记 - 图10

2.查看分支

  1. git branch -v

git学习笔记 - 图11

3.切换分支

  1. git checkout hot-fix

git学习笔记 - 图12

4.合并到master

  1. git checkout master

5.合并分支

  1. git merge hot-fix

git学习笔记 - 图13

有冲突需要手动合并分支

2.2、gitee仓库

1、生成ssh公钥

  1. ssh-key -t rsa

一直回车

2、查看秘钥

  1. cat ~/.ssh/id_rsa.pub

复制到gitee公钥,ok

3、验证是否成功

  1. ssh -T git@gitee.com

4、本地添加仓库

  1. git remote add origin git@gitee.com:cx0413/git-test1.git

5、验证

  1. git remote

6、上传代码

  1. git push [-f] [--set-upstream]origin master
  2. [-f] 表示强制提交
  3. [--set-upstream] 第一次提交
  4. git branch -vv
  5. 查看与远端关联关系

7、拉取代码

  1. git pull https://gitee.com/cx0413/git-demo.git master
  2. 拉取=fetch+merge
  3. 抓取
  4. git fetch 获得提交
  5. git merge origin/master

8、克隆代码

  1. git clone https://gitee.com/cx0413/git-demo.git

三、IDEA集成git

1.配置忽略文件

两者在同一目录下

git学习笔记 - 图14

1)git.ignore 文件模版内容如下:

  1. # Compiled class file *.class
  2. # Log file
  3. *.log
  4. # BlueJ files
  5. *.ctxt
  6. # Mobile Tools for Java (J2ME)
  7. .mtj.tmp/
  8. # Package Files #
  9. *.jar
  10. *.war
  11. *.nar
  12. *.ear
  13. *.zip
  14. *.tar.gz
  15. *.rar
  16. # virtual machine crash logs, see
  17. http://www.java.com/en/download/help/error_hotspot.xml
  18. hs_err_pid*
  19. .classpath
  20. .project
  21. .settings
  22. target
  23. .idea
  24. *.iml

2)在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)

  1. [user]
  2. name = cx
  3. email = 1437950849@qq.com
  4. [core]
  5. autocrlf = true
  6. [core]
  7. excludesfile = C:/Users/酷酷的鑫/git.ignore
  8. 注意:这里要使用“ 正斜线(/)”,不要使用“ 反斜线(\)

2.定位 Git 程序

git学习笔记 - 图15

3、创建项目仓库

git学习笔记 - 图16