1. 第一阶段:单枪匹马开始干
想要让git对一个目录进行版本控制需要一下步骤:
- 进入要管理的文件夹
- 执行初始化命令
git init
- 管理目录下的文件状态
git status
注:新增的文件和修改后的文件都是红色
- 管理指定文件(红变绿)
git add 文件名
git add .
- 个人信息配置:用户名、邮箱
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
- 生成版本
git commit -m '描述信息'
- 查看版本记录
git log
2. 第二阶段:拓展新功能
git add
git commit -m '短视频'
3.第三阶段:"约饭事件"
- 回滚至之前版本
git log
git reset --hard 版本号
- 回滚至之后版本
git reflog
git reset --hard 版本号
4.总结
git init
git add
git commit
git log
git reflog
git reset --hard 版本号
5.第四阶段:商城&紧急修复bug
5.1 分支
分支可以给使用者提供多个环境的开发,意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
5.2 紧急修复bug方案
5.3 命令总结
- 查看分支
git branch
- 创建分支
git branch 分支名称
- 切换分支
git checkout 分支名称
- 分支合并(可能产生冲突)
git merge 要合并的分支
注意:切换分支再合并
- 删除分支
git branch -d 分支名称
5.4 工作流
6.第五阶段:进军三里屯
- 在家里上传代码
1. 给远程仓库起别名
git remote add origin 远程仓库地址
2. 向远程仓库推送代码
git push -u origin 分支
- 到公司新电脑上第一次获取代码
1. 克隆远程仓库代码
git clone 远程仓库地址(内部已经实现git remote add origin 远程仓库地址)
2. 切换分支
git checkout 分支
- 在公司进行开发
1. 切换到dev分支进行开发
git checkout dev
2. 把master分支合并到dev(仅一次)
git merge master
3. 修改代码
4. 提交代码
git add .
git commit -m 'xx'
git push origin dev
- 回到家中继续写代码
1. 切换到dev分支进行开发
git checkout dev
2. 拉取代码
git pull origin dev
3. 继续开发
4. 提交代码
git add .
git commit -m 'xx'
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
- 快速解决冲突
1.安装beyond compare
2.在git中配置
git config --local merge.tool bc3
git config --local mergetool.path '/usr/local/bin/bcomp'
git config --local mergetool.keepBackup false
3.应用beyond compare 解决冲突
git mergetool
7.小总结
- 添加远程连接
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"
8.第六阶段:多人协同开发工作流
9.第七阶段:给开源软件贡献代码
- fork源代码
将别人的源代码拷贝到自己的远程仓库 - 在自己仓库进行修改代码
- 给源代码的作者提交修复bug的申请(pull request)
10.配置
- 项目配置文件:项目/.git/config
git config --local user.name 'xxx'
git config --local user.email 'xxxxx@xx.com'
- 全局配置文件:~/.gitconfig
git config --global user.name 'xxx'
git config --global user.email 'xxxxx@xx.com'
- 系统配置文件:/etc/.gitconfig
git config --system user.name 'xxx'
git config --system user.email 'xxxxx@xx.com'
注意:需要有 root 权限
- 应用场景
git config --local user.name 'xxx'
git config --local user.email 'xxxxx@xx.com'
git config --local merge.tool bc3
git config --local mergetool.path '/usr/local/bin/bcomp'
git config --local mergetool.keepBackup false
git remote add origin 地址,默认添加在本地配置文件中(--local)
11.免密登录
- URL中体现
原来的地址:https://github.com/xxxxx/dbhot.git
修改的地址:https://用户名:密码@github.com/xxxxx/dbhot.git
git remote add origin 修改的地址:https://用户名:密码@github.com/xxxxx/dbhot.git
git push origin master
- SSH实现
1.生成公钥和私钥(默认放在 ~/.ssh目录下,id_ras.pub公钥、id_ras私钥)
ssh-keygen
2.拷贝公钥的内容,并设置到 github 中
3.在git本地中配置SSH地址
git remote add origin git@github.com:xxxx/dbhot.git
4.以后使用
git push origin master
- git自动管理凭证
12. git忽略文件
让Git不再管理当前目录下的某些文件
*.h
!a.h
files/
*.py[c|a|d]
更多参考:https://github.com/github/gitignore
13. 任务管理
- issues:文档以及任务管理
- wiki:项目文档说明