1.Git简介

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

2.安装Git

 git --version

在这里插入图片描述

3.Git配置

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

    git config --global user.email "chuhe163@163.com"
    git config --global user.name "锄禾"
    
    

    在这里插入图片描述

  • 首次未配置git commit时会有如下提示
    在这里插入图片描述

3.Git的使用

3.1. 进入要管理 的文件夹

在这里插入图片描述

在这里插入图片描述

3.2. 初始化

git init

在这里插入图片描述

在这里插入图片描述

3.3.管理

3.3.1.查询状态git status

git status

在这里插入图片描述

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

3.3.2.管理指定的文件

  • 指定需要跟踪的文件
    git add MFC.sln
    
    在这里插入图片描述
  • 指定当前路径下的文件全部为管理文件
    git add .
    
    在这里插入图片描述

3.4.生成版本

git commit -m '描述信息'

在这里插入图片描述

3.5.查看版本记录

git log

在这里插入图片描述

4.Git三大区域

在这里插入图片描述

5.回滚

5.1.回滚到历史版本

git log
git reset --hard 版本号

在这里插入图片描述

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

git relog
git reset --hard 版本号

在这里插入图片描述

5.3、git checkout回滚

git checkout

在这里插入图片描述

6.分支

6.1.查看分支

git branch

在这里插入图片描述

6.2.创建分支

git branch dev

在这里插入图片描述

6.3.切换分支

git checkout dev

在这里插入图片描述

6.4.合并分支

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

6.5.删除分支

git branch -d 分支名称

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

  • 1、新项目开始,v1.0发布
    在这里插入图片描述
    在这里插入图片描述

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

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

    git checkout dev
    

    在这里插入图片描述

  • 3 新功能开发过半,需要紧急修复BUG,先将dev已开发的功能,提交版本。
    在这里插入图片描述
    在这里插入图片描述

  • 4 dev提交完成以后,切回master分支
    在这里插入图片描述
    在这里插入图片描述

  • 5 在master分支上,创建bug分支用来修复BUG。
    在这里插入图片描述
    在这里插入图片描述

  • 6 Bug修复完毕,并在bug分支上提交版本bug 1.1
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

  • 7 切回master分支
    在这里插入图片描述

    在这里插入图片描述

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

    git merge bug
    

    在这里插入图片描述
    在这里插入图片描述

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

    git branch -d bug
    

    在这里插入图片描述

  • 10 切回dev分支,继续开发
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 11 新功能开发100%,提交版本dev 1.2 在这里插入图片描述
    在这里插入图片描述

  • 12 切回master
    在这里插入图片描述
    在这里插入图片描述

  • 13 将dev 1.2合并到master,提示有冲突
    在这里插入图片描述
    在这里插入图片描述

  • 14 手动修改后,
    在这里插入图片描述
    在这里插入图片描述

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"
  • 首次推送要求录入用户名和密码。
    在这里插入图片描述
  • 正确录入Gitee用户名和密码,开始推送至仓库。
    在这里插入图片描述
  • 推送成功,效果如下。
    在这里插入图片描述

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 版本号

在这里插入图片描述

2 指令二
	git rebase -i HEAD~3

在这里插入图片描述

  • 指令执行,进入如下界面
    在这里插入图片描述
  • 修改成下图
    在这里插入图片描述
  • 保存成功进入如下界面 (这里面填写,提交信息)
    在这里插入图片描述
  • 修改提交信息,并保存。
    在这里插入图片描述
    在这里插入图片描述

8.2.rebase 应用场景二

8.2.1.merge合并dev到master

  • dev分支下版本记录如下
    在这里插入图片描述

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

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

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

  • 图形化查看一

    git log --graph
    

    在这里插入图片描述

  • 图形化查看二

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

    在这里插入图片描述

8.2.2.rebase合并dev到master

  • dev分支下的版本记录
    在这里插入图片描述
  • master分支下的版本记录
    在这里插入图片描述
  • 先切回dev分支
    在这里插入图片描述
  • rebase,将master版本上的内容放到dev
    在这里插入图片描述
  • 切回master,再将dev的版本记录合并到master
    在这里插入图片描述
  • 相对于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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12.给开源软件贡献代码

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

13.配置文件存放路径

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

    git config --local user.name '锄禾'
    git config --local user.email 'xxx@xxx.com'
    
  • 全局配置文件:~/.gitconfig

    git config --global user.name '锄禾'
    git config --global user.email 'xxx@xxx.com'
    
  • 系统配置文件:/etc/.gitconfig

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

	场景一:
	git config --local user.name '锄禾'
	git config --local user.email 'xxx@xxx.com'
	场景二 :
	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
    

    公钥和私钥如下
    在这里插入图片描述
    Gitee中配置如下
    在这里插入图片描述

  • 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
    在这里插入图片描述

  • wiki
    在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐