Git分布式版本控制工具入门

文章目录

  • 1.Git简介
  • 2.安装Git
  • 3.Git配置
  • 3.Git的使用
    • 3.1. 进入要管理 的文件夹
    • 3.2. 初始化
    • 3.3.管理
      • 3.3.1.查询状态`git status`
      • 3.3.2.管理指定的文件
    • 3.4.生成版本
    • 3.5.查看版本记录
  • 4.Git三大区域
  • 5.回滚
    • 5.1.回滚到历史版本
    • 5.2.回滚到历史版本后取消掉回滚
    • 5.3、git checkout回滚
  • 6.分支
    • 6.1.查看分支
    • 6.2.创建分支
    • 6.3.切换分支
    • 6.4.合并分支
    • 6.5.删除分支
    • 6.2.新功能未开发完毕紧急修复BUG
  • 7.Gitee代码托管
    • 7.1.推送至Gitee
    • 7.2.从Gitee远程仓库克隆至本地
    • 7.3.利用Gitee远程仓库两地办公
  • 8.rebase
    • 8.1.rebase 应用场景一
    • 8.2.rebase 应用场景二
      • 8.2.1.merge合并dev到master
      • 8.2.2.rebase合并dev到master
    • 8.3.rebase应用场景三
    • 8.3.1.rebase过程中遇到冲突
    • 8.3.2.两台电脑上的代码均无提交到版本库
  • 9.Beyond Compare解决冲突
  • 10.命令总结
  • 11、给版本添加tag并添加至远程仓库
  • 12.给开源软件贡献代码
  • 13.配置文件存放路径
  • 14.免密登录
  • 15.git忽略文件
  • 16.任务管理


1.Git简介

  • Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制
    软件。
  • Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,
    不必服务器端软件支持。

2.安装Git

  • Git官网操作说明:https://git-scm.com/book/zh/v2
  • 安装成功,右击桌面如下。
    Git分布式版本控制工具入门_第1张图片
  • 查看Git版本
 git --version

Git分布式版本控制工具入门_第2张图片

3.Git配置

  • 首次使用Git需要配置邮箱和姓名

    git config --global user.email "[email protected]"
    git config --global user.name "锄禾"
    
    

    在这里插入图片描述

  • 首次未配置git commit时会有如下提示
    Git分布式版本控制工具入门_第3张图片

3.Git的使用

3.1. 进入要管理 的文件夹

在这里插入图片描述

在这里插入图片描述

3.2. 初始化

git init

Git分布式版本控制工具入门_第4张图片

Git分布式版本控制工具入门_第5张图片

3.3.管理

3.3.1.查询状态git status

git status

Git分布式版本控制工具入门_第6张图片

  • 红色:为未指定为跟踪的文件,新增的文件/或修改了原来的文件 git add 文件名
  • 绿色:为已指定为跟踪的文件 git commit -m '描述信息'
  • 生成版本

3.3.2.管理指定的文件

  • 指定需要跟踪的文件
    git add MFC.sln
    
    Git分布式版本控制工具入门_第7张图片
  • 指定当前路径下的文件全部为管理文件
    git add .
    
    Git分布式版本控制工具入门_第8张图片

3.4.生成版本

git commit -m '描述信息'

Git分布式版本控制工具入门_第9张图片

3.5.查看版本记录

git log

Git分布式版本控制工具入门_第10张图片

4.Git三大区域

Git分布式版本控制工具入门_第11张图片

5.回滚

5.1.回滚到历史版本

git log
git reset --hard 版本号

Git分布式版本控制工具入门_第12张图片

5.2.回滚到历史版本后取消掉回滚

git relog
git reset --hard 版本号

Git分布式版本控制工具入门_第13张图片

5.3、git checkout回滚

git checkout

Git分布式版本控制工具入门_第14张图片

6.分支

6.1.查看分支

git branch

Git分布式版本控制工具入门_第15张图片

6.2.创建分支

git branch dev

Git分布式版本控制工具入门_第16张图片

6.3.切换分支

git checkout dev

Git分布式版本控制工具入门_第17张图片

6.4.合并分支

git merge 要合并的分支
注意:切换分支再合并

6.5.删除分支

git branch -d 分支名称

6.2.新功能未开发完毕紧急修复BUG

  • 1、新项目开始,v1.0发布
    Git分布式版本控制工具入门_第18张图片
    Git分布式版本控制工具入门_第19张图片

  • 2 在master分支创建dev分支,用来开发新功能

    git branch dev 
    
  • 2 切换至dev分支,开发新功能

    git checkout dev
    

    Git分布式版本控制工具入门_第20张图片

  • 3 新功能开发过半,需要紧急修复BUG,先将dev已开发的功能,提交版本。
    Git分布式版本控制工具入门_第21张图片
    Git分布式版本控制工具入门_第22张图片

  • 4 dev提交完成以后,切回master分支
    Git分布式版本控制工具入门_第23张图片
    Git分布式版本控制工具入门_第24张图片

  • 5 在master分支上,创建bug分支用来修复BUG。
    Git分布式版本控制工具入门_第25张图片
    Git分布式版本控制工具入门_第26张图片

  • 6 Bug修复完毕,并在bug分支上提交版本bug 1.1
    Git分布式版本控制工具入门_第27张图片
    Git分布式版本控制工具入门_第28张图片

    Git分布式版本控制工具入门_第29张图片

  • 7 切回master分支
    Git分布式版本控制工具入门_第30张图片

    Git分布式版本控制工具入门_第31张图片

  • 8 将修复BUG的版本bug 1.1合并到master分支上。

    git merge bug
    

    Git分布式版本控制工具入门_第32张图片
    Git分布式版本控制工具入门_第33张图片

  • 9 合并完成,删除bug分支

    git branch -d bug
    

    Git分布式版本控制工具入门_第34张图片

  • 10 切回dev分支,继续开发
    Git分布式版本控制工具入门_第35张图片
    Git分布式版本控制工具入门_第36张图片

Git分布式版本控制工具入门_第37张图片

  • 11 新功能开发100%,提交版本dev 1.2 Git分布式版本控制工具入门_第38张图片
    Git分布式版本控制工具入门_第39张图片

  • 12 切回master
    Git分布式版本控制工具入门_第40张图片
    Git分布式版本控制工具入门_第41张图片

  • 13 将dev 1.2合并到master,提示有冲突
    Git分布式版本控制工具入门_第42张图片
    Git分布式版本控制工具入门_第43张图片

  • 14 手动修改后,
    Git分布式版本控制工具入门_第44张图片
    Git分布式版本控制工具入门_第45张图片

7.Gitee代码托管

7.1.推送至Gitee

1 给远程仓库起别名
git remote add origin  远程仓库地址
2 向远程推送代码
git push -u origin 分支

例如:

git remote add origin https://gitee.com/yintuokun/mfc.git
git push -u origin "master"
  • 首次推送要求录入用户名和密码。
    Git分布式版本控制工具入门_第46张图片
  • 正确录入Gitee用户名和密码,开始推送至仓库。
    Git分布式版本控制工具入门_第47张图片
  • 推送成功,效果如下。
    在这里插入图片描述

7.2.从Gitee远程仓库克隆至本地

1 克隆远程仓库代码
git clone 远程仓库地址(内部已实现git remote add origin  远程仓库地址)
2 切换分支
git checkout 分支

7.3.利用Gitee远程仓库两地办公

  • 公司开发
1 切换到dev分支进行开发
	git checkout dev
2 把master分支合并到dev(仅一次)
	git merge master
3 修改代码
4 提交代码
	git add
	git commit -m 'xxx'
	git push origin dev
  • 回到家继续开发
1 切换到dev分支进行开发
	git checkout dev
2 拉代码
	git pull origin dev
3 继续开发
4 提交代码
	git add
	git commit -m 'xxx'
	git push origin dev
  • 开发完毕,上线
1 将dev分支合并到master,进行上线
	git checkout master
	git merge dev
	git push origin master
2 把dev分支也推送到远程
	git checkout dev 
	git merge master
	git push origin dev
  • git pull的说明
git pull origin dev 
相当于发下两句
git fetch origin dev 从远程仓库拉取到版本库
git merge origin/dev

8.rebase

  • 可以使开发记录更简洁。

8.1.rebase 应用场景一

  • 以下两句指令功能一样
  • 已经提交到版本库的版本不要做此操作
1 指令一
 	git rebase -i 版本号

Git分布式版本控制工具入门_第48张图片

2 指令二
	git rebase -i HEAD~3

Git分布式版本控制工具入门_第49张图片

  • 指令执行,进入如下界面
    Git分布式版本控制工具入门_第50张图片
  • 修改成下图
    Git分布式版本控制工具入门_第51张图片
  • 保存成功进入如下界面 (这里面填写,提交信息)
    Git分布式版本控制工具入门_第52张图片
  • 修改提交信息,并保存。
    Git分布式版本控制工具入门_第53张图片
    Git分布式版本控制工具入门_第54张图片

8.2.rebase 应用场景二

8.2.1.merge合并dev到master

  • dev分支下版本记录如下
    Git分布式版本控制工具入门_第55张图片

  • master下版本记录如下。
    在这里插入图片描述

  • dev分支合并到master
    在这里插入图片描述

    Git分布式版本控制工具入门_第56张图片
    Git分布式版本控制工具入门_第57张图片

    Git分布式版本控制工具入门_第58张图片

  • 图形化查看一

    git log --graph
    

    Git分布式版本控制工具入门_第59张图片

  • 图形化查看二

    git log --graph --pretty=format:"%h %s"
    

    Git分布式版本控制工具入门_第60张图片

8.2.2.rebase合并dev到master

  • dev分支下的版本记录
    Git分布式版本控制工具入门_第61张图片
  • master分支下的版本记录
    Git分布式版本控制工具入门_第62张图片
  • 先切回dev分支
    在这里插入图片描述
  • rebase,将master版本上的内容放到dev
    Git分布式版本控制工具入门_第63张图片
  • 切回master,再将dev的版本记录合并到master
    Git分布式版本控制工具入门_第64张图片
  • 相对于8.2.1这种合并记录更简洁。

8.3.rebase应用场景三

8.3.1.rebase过程中遇到冲突

  • 解决冲突
  • 执行下列命令让rebase继续
git rebase --continue

8.3.2.两台电脑上的代码均无提交到版本库

因为

git pull origin dev 
相当于以下两句
git fetch origin dev 从远程仓库拉取到版本库
git merge origin/dev

故将git pull origin dev 改用下面两句即可。

git fetch origin dev 从远程仓库拉取到版本库
git rebase origin/dev

9.Beyond Compare解决冲突

  • 1 安装Beyond Compare
  • 2 在git中配置
    • 以下配置只在当前配置生效
    git config --local merge.tool bc3
    git config --local mergetool.path ''
    git config --local mergetool.keepBackup false
    
  • 3 应用Beyond Compare解决冲突
git mergetool

10.命令总结

  • 添加远程连接(别名)
git remote add origin 地址
  • 推送代码
git push origin dev
  • 下载代码
git clone 地址
  • 拉取代码
git pull origin dev
等价于
git fetch origin dev
git merge origin/dev
  • 保持代码提交整洁(变基)
git rebase 分支
  • 记录图形展示
git log --graph --pretty=format:"%h %s"
  • 远程仓库添加tag
1 给版本加上tag
	git tag -a v1 -m '版本描述'
2 将tag推送至远程仓库
	git push origin --tags
  • 创建dev并切换到dev
git checkout -b dev

11、给版本添加tag并添加至远程仓库

1 给版本加上tag
	git tag -a v1 -m '版本描述'
2 将tag推送至远程仓库
	git push origin --tags

Git分布式版本控制工具入门_第65张图片
Git分布式版本控制工具入门_第66张图片
Git分布式版本控制工具入门_第67张图片

12.给开源软件贡献代码

  • 1 fork源码
    将别人源代码拷贝到自己的远程仓库
  • 2 在自己仓库进行修改代码
  • 3 给源代码的作者提交修复bug的申请 (pull request)

13.配置文件存放路径

  • 项目配置文件:项目/.git/config

    git config --local user.name '锄禾'
    git config --local user.email '[email protected]'
    
  • 全局配置文件:~/.gitconfig

    git config --global user.name '锄禾'
    git config --global user.email '[email protected]'
    
  • 系统配置文件:/etc/.gitconfig

    git config --system user.name '锄禾'
    git config --system user.email '[email protected]'
    注意:需要root权限
    
  • 应用场景:

	场景一:
	git config --local user.name '锄禾'
	git config --local user.email '[email protected]'
	场景二 :
	git config --local merge.tool bc3
	git config --local mergetool.path ''
	git config --local mergetool.keepBackup false
	场景三:
	git remote add origin 地址  默认添加在本地配置文件中(--local)

14.免密登录

  • URL中体现
原来的地址:https://gitee.com/yintuokun/mfc.git
修改的地址:https://用户名:密码@gitee.com/yintuokun/mfc.git

git remote add origin https://用户名:密码@gitee.com/yintuokun/mfc.git
git push origin master
  • SSH实现

    1 生成公钥和私钥(默认放在~/.ssh目录下,id_rsa.pub公钥,id_rsa私钥)
    	ssh-keygen
    	ssh-keygen -r rsa
    2 拷贝公钥的内容,并设置到Gitee中
    3 在git本地中配置ssh地址
    	git remote add origin git@gitee.com:yintuokun/mfc.git
    4、以后使用会自动匹配公钥和私钥
    	git push origin master
    

    公钥和私钥如下
    Git分布式版本控制工具入门_第68张图片
    Gitee中配置如下
    Git分布式版本控制工具入门_第69张图片

  • git自动管理凭证

  • 在这里插入图片描述

15.git忽略文件

  • 项目当前目录添加.gitignore
  • 让Git不再管理当前目录下的某些文件
*.h
!a.h
files/
*.py[c|a|d]

更多可参考:
https://gitee.com/kd_cmad/Common_gitignore/tree/master
https://github.com/github/gitignore

16.任务管理

  • issues
    Git分布式版本控制工具入门_第70张图片

  • wiki
    Git分布式版本控制工具入门_第71张图片

你可能感兴趣的:(#,Git,git,分布式,github)