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 git@xxxx.git
  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 项目文档
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容