Git分布式版本控制工具入门
文章目录1.Git简介2.安装Git3.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回滚1.Git简介Git 是一个开源的分布式版本控制系统
文章目录
1.Git简介
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制
软件。 - Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,
不必服务器端软件支持。
2.安装Git
- Git官网操作说明:https://git-scm.com/book/zh/v2
- 安装成功,右击桌面如下。
- 查看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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)