git 开发中应用

一 基础命令

  • 个人信息配置:用户名,邮箱 (最开始执行一次即可)
git config --global user.email 'xxxxx.com'
git config --global user.name 'xxx'
  • 初始化 即:让git帮助我们管理当前文件夹
git init 
  • 检测当前目录下文件的状态
git status   
  • 添加未管理的文件 git add 文件名 管理指定文件
git add .  
  • 生成版本
git commit -m 'v1'    
  • 查看版本记录
git log
git reflog   
  • 创建目录
mkdir "文件夹名"
  • 查看文件
cat "文件名"
  • 流线
git log --graph 
git log --graph --pretty=format:"%h %s" (简洁流线)

二 回滚

  • 回滚之前版本:
git log
git reset --hard "版本号"
  • 回滚之后的版本
git reflog
git reset --hard "版本号" 
  • 工作区回到原始
git checkout -- "文件名"
  • 暂存区回到工作区
git reset HEAD “文件名”

三 分支

  • 查看分支
 git branch
  • 创建分支
git branch ’dev‘
  • 切换分支
git checkout ’dev'
  • 创建分支并切换
git checkout -b 'dev'
  • 合并分支
git checkout master
git merge ’bug‘

注意:切换分支,谁合并谁 如:当前master分支 就是把bug分支切换到master上
  • 删除本地分支
git branch -d ‘bug’ 
  • 删除远程分支
git push origin --delete 'dev'

四 远程仓库

  1. 注册账号
  2. 创建仓库
  3. 本地代码推送到远程仓库
  • 克隆远程仓库代码(第一次拉取代码)
git clone '仓库地址'
  • 给远程仓库起别名(origin可随意)
git remote add origin '仓库地址'
  • 拉取仓库代码
git pull origin 'dev'
  • 推送远程分支
git push origin '分支名字'

注意:push会提示账号密码:

五 变基

  • 合并从当前开始3个记录
git rebase -i HEAD~'3' 

git rebase -i 'commit号'
  • git merge 和 git rebase区别:
1. git merge
git checkout master 

git merge 'dev'

git log --graph --pretty=format:"%h %s"
merge流线.png
2. git rebase
git checkout 'dev'

git rebase master

git checkout master

git merge 'dev'

git log --graph --pretty=format:"%h %s"
rebase 流线.png
  • 本地暂存区有代码 拉取远程代码,如下操作不会有分叉
git pull origin 'dev' =>

git fetch origin 'dev' + git rebase origin/'dev'

六 标签

  • 打标签
git tag -a v1 -m "xxxx"
  • 推送标签到远程仓库
git push origin --tags

七 review

  1. 成员通过 pull request 申请review
  2. 管理员 review通过 ->代码合并 ->删除分支

八 开发流程

1. 上线版本release 流程

git checkout dev

git branch release

fix bugs => pull request => review=> release合并master 

git checkout dev

git merge release 把release合并到dev上 合并完成可以直接把release分支删除

git checkout master

git pull origin master

git tag -a v2 -m "第二版功能"

git push origin --tags

2. 开发主要流程

git checkout dev (切换到dev分支)

git merge master (把master分支合并到dev)

fix code.....

git add .

git commit -m "xx"

git push origin dev

git pull origin dev ==  git fetch origin dev + git merge origin/dev

3. 快速解决冲突

  • 安装beyond compare
  • 在git中配置
git config --local merge.tool bc3
git config --local mergetool.path 'usr/local/bin/bcomp'
git config --local mergetool.keppBackup false

注:local  只对当前项目生效
  • 应用beyond compare解决冲突
git mergetool

九 免密登录

  1. URL中体现
原来地址:https://xxxx.git =>

修改地址:https://用户名:密码@xxxx.git

git remote add origin https://用户名:密码@xxxx.git
  1. 通过ssh实现
  • 生产公钥和私钥 (默认放在 ~/.ssh目录下,id_rsa.pub公钥)
ssh-keygen
  • 拷贝公钥内容:设置到远程仓库
cat ~/.ssh/id_rsa.pub
  • 在git中本地中配置ssh地址
git remote add origin [email protected]
  1. git自动管理凭证 钥匙串

补充

1. 三种文件状态的变化

  • 红色 :新增的文件/修改了原来文件 => git add 文件名 / git add .
  • 绿色 :git 已经管理起来 -> git commit -m '描述信息'
  • 生成版本

2. 配置

  • 项目配置文件: .git/config
git config --local user.email 'xxxxx.com'
git config --local user.name 'xxx'
  • 全局配置文件: ~/.gitconfig
git config --global user.email 'xxxxx.com'
git config --global user.name 'xxx'
  • 系统配置文件: /etc/.gitconfig (需要有root权限)
git config --system user.email 'xxxxx.com'
git config --system user.name 'xxx'

3. git忽略文件

让git文件不再管理当前目录下的某些文件,更多参考github

  • *.h 以.h结尾的

  • !a.h 除了a.h文件

  • files/ 文件夹所有的文件

  • *.py[c|a|d] 以.pyc .pya .pyd 后缀的

4. 给开源框架 贡献代码

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

5. 任务管理

  • issuse 文档以及任务管理
  • wiki 项目文档

你可能感兴趣的:(git 开发中应用)