git在团队项目中的使用流程

1.首先从一个git远程仓库中clone项目到本地

1
git clone 仓库地址

2.创建开发分支

一般我们写代码不会在master分支上面写,而是新建一个分支

1
git checkout -b test

3.在test分支上面进行代码修改,比如完成某一项功能的开发

4.修改完之后提交代码到test分支

1
2
git add .
git commit -m "your comment"<br>

5.review代码(非必需)

在test分支上面开发完某一个功能之后,建议自己review一下修改的代码,通过与master分支进行对比

6.切换到master分支

1
git checkout master

7.更新master分支

1
git pull (将本地master与服务器最新代码保持一致)

8.重新切换到test分支

1
git checkout test

9.将master代码更新到test分支

1
git merge master(将master分支合并到当前分支)

10.处理完冲突之后将test分支提交到服务器

1
git push origin 分支名

11.提交Merge Request

提交Merge Request之后代码审核组同事会对提交的代码进行审核,没问题则会同意合并请求,将test分支的代码合并到master分支

git使用小技巧

stash的使用

有时候有这样一个场景:你在本地某一个分支上面开发某一个功能,这时候有一个紧急bug需要处理,而当前功能没有开发完你不想提交,不提交又无法切换分支。这时候就可以用stash命令来暂存当前代码。

1
2
git add .
git stash

这时候你修改的代码都会暂存到一个类似于栈的容器中,代码会恢复到最后一次提交的位置。
可以执行git stash list查看是否暂存栈的列表。

暂存代码之后就可以切换分支了,这时候你可以切换到别的分支修复bug,完了之后切换到该分支,执行下面命令进行恢复

1
git stash pop

blame的使用

有时候我们在修改别人代码的时候,想要查看某个文件具体某一行是谁写的,可以使用blame(责备的意思,用来追究责任)

1
git blame 文件

执行上面命令之后,每一行都会显示具体是谁提交的,并且可以用翻页键进行翻页。

git命令别名设置

是否觉得敲git命令有点麻烦?肯定的,我也这么觉得。
我们可以在 ~/.gitconfig 文件里面进行别名设置,即加上下面这几行

1
2
3
4
5
6
[alias]
 st = status
 ci = commit
 br = branch
 co = checkout
 df = diff

别名可以根据自己习惯设置。

常用git命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git branch -r/-a  查看远程分支/本地和远程分支
git checkout 分支名  切换分支
git checkout -b 分支名  新建并切换到新建的分支
git branch -d 分支名  删除本地分支
git pull   更新本地分支到最新
git merge 分支名  合并某个分支到当前分支
git diff   查看当前没有add的内容修改
git diff --cached  查看已经add,没有commit的改动
git diff HEAD   是上面两个命令的合并
git log --oneline --number 显示log,每个log显示一行,显示number条
git add .   将修改的代码添加到暂存区
git push origin 分支名  将指定分支推送到服务器
git status   查看哪些修改已加入暂存区待提交,哪些修改未加入暂存区
git reset HEAD 文件名  取消某文件的暂存

最新文章

  1. ng-controller event data
  2. Git学习笔记——一个NB的分布式版本控制系统
  3. poj 1193 内存分配
  4. Proud Merchants(01背包)
  5. 14.9.4 COMPACT and REDUNDANT Row Formats
  6. 【Cocos2d-X开发笔记】第一期 Cocos2d-X的环境搭建
  7. 《奇思妙想:15位计算机天才及其重大发现》【PDF】下载
  8. 避免&quot;Physics Space Locked&quot;错误
  9. pycharm .sqlite文件拖动到Database里面为空
  10. Prisma GraphQL 服务器 生产者 &quot;https://www.prisma.io&quot;
  11. 复习string和数组
  12. mysql数据的导入和导出
  13. Java Web之Servlet的三大作用域对象
  14. mysql----------利用navicat查看两个数据库之间的差异
  15. 八大排序算法——冒泡排序(动图演示 思路分析 实例代码java 复杂度分析)
  16. Software-Defined Networking:A Comprehensive Survey--Day4
  17. 算法笔记_229:有理数的循环节(Java)
  18. Vue项目实现excel导出
  19. Hibernate 延迟载入
  20. Linux mount Windows目录

热门文章

  1. UTV - URL Tag Validation
  2. Nginx从入门到放弃-第4章 深度学习篇
  3. Eclipse调试程序及项目的导入导出
  4. spring AOP详解〇
  5. linux 下java jar包的方法
  6. DS博客作业05——树
  7. 换肤功能的实现以及监听storage实现多个标签页一起换肤
  8. 【bzoj1925】[Sdoi2010]地精部落 组合数学+dp
  9. vue学习:解决Apycharm的 * is only available in ES6(use &#39;esversion: 6&#39;) 问题
  10. bzoj 2437[Noi2011]兔兔与蛋蛋 黑白染色二分图+博弈+匈牙利新姿势