git在项目中常用命令和项目流程中涉及到步骤分析

GIT

git的组成:分布式,版本控制,软件

svn是集中式版本控制,而git是分布式版本控制

  • 问价拷贝
  • 本地版本控制
  • 集中式版本控制
  • 分布式版本控制
第一阶段:生成版本,扩展功能,版本回滚

命令:

1.git init ----- 初始化生成.git文件进行管理
2.git status  ------检测当前文件的文件状态,也显示当前文件夹内的文件名称,管理后的文件是绿色,未管理的是红色,也可以进行文件检测,检测文件是否被修改,如若修改则直接变成红色.
3.git add 文件名称  ---- 进行管理文件
4.git add .   ----管理当前文件夹所有未管理的文件
5.git log   -----查看版本记录
6.git  --version  ------检查版本号
7.git commit -m "描述信息"-----生成版本

git三大区域:

工作区:
1.已经管理的和修改/新增文件
暂存区:git add .  表示把工作区文件提交到暂存区
版本库:git commit  表示把暂存区文件提交到版本库

回滚:

git reset --hard  版本号
git reflog  ------用于查看的所有的操作及版本过程

工作区内调度:

git checkout -- <file>  修改文件变成管理文件,剔除修改内容
git reset HEAD <file>  ---把问价从暂存区返回到工作区

第二阶段:分支

线上出BUG时,创建分支修复BUG,然后合并到主分支上.

git branch  ----- 用户所处在的分支
git branch dev   ---- 创建新分支dev
git checkout dev  ---切换到dev分支
git merge dev   ---合并分支dev到master主分支
CONFLICT (content): Merge conflict in git_tes/templates/index.html
可能会带有冲突,这时须手动解决.
git status ----查看改动
git commit -m "备注"
英文状态下q表示退出
git branch -d 分支名  ----删除分支

工作流

不在master分支上开发

github:代码仓库,gitlab

1.注册账号
2.创建仓库
3.本地代码推送远程仓库

github做代码托管

1.创建仓库
2.推送代码
git remote add origin https://github.com/PythonerIron/gittest0912.git
git push -u origin master
也可以推送其他的分支
git push -u origin dev
3.克隆代码
git clone https://github.com/PythonerIron/gittest0912.git
已经clone了所有分支,但是只显示master分支,可以直接Git checkout dev进行操作

怎么去开发?

1.创建分支dev
2.切换到dev分支
3.将master分支代码复制git merge master
4.进行开发 touch a1.py
5.git add. 
6.git commit -m "01day"本地生成控制版本
7.git push -u origin dev
8.回家继续,远端更新 
9.git checkout dev
10.git pull origin dev
11.开发,提交代码
git pull origin dev 等价于
git fetch origin dev
git merge origin/dev

rebase(变基)

#将多个记录整合成一个记录
1.git rebase -i  版本号-----将最新的版本号和当前rebase后的版本号之间合并.
2.git rebase -i HEAD~3   整合三条
注意:合并是不要合并已经push的文件

#分支合
git log --graph --pretty=format:"%h %s"画图式显示
*   f52d0b5 Merge branch 'master' into dev
|\
| * a050c14 master test01
* | f408a0f dev test
|/
* 4ecd59b dev new.py
* 27ca536 dev分支上线
* 7a4e949 04
* 885d61d 03
* 94ed499 02
* 1a87782 01
分支合并,在dev merge master,然后在master merge dev


#分叉
家:v2   公司:v1  如若在公司拉代码v2会造成分叉,此时,
git fetch origin dev
git rebase origin/dev


#注意事项:git rebase产生冲突,解决冲突
git  add .
git rebase --continue

beyond compare文件对比,快速解决冲突

在git中配置
git config --local merge.tool 名字bc3
git config --local mergetool.path '安装目录E:\Beyond Compare 4'
git config --local mergetool.keepBackup false
应用beyond compare解决冲突
git mergetool

怎么多人开发?

每个人都有自己的分支上进行开发,然后没两天就要合并一下处理冲突.

检查代码review

gitflow工作流

tag(打标签)master分支上打标签

git tag -a v1 -m "第一版本"------版本v1  和版本的信息描述
git push origin  --tags   -----将版本推送到github
创建dev并且切换到dev分支
git checkout -b dev 这是已经在自己的电脑上了
还需要将自己本地的代码推送到远程,github才会显示这个分支
git push origin dev

github中组织的权限settings

默认是只读
开发人员克隆代码
git clone 地址
在dev分支上继续开一个分支
开发完成时,需要代码review

测试过程

git checkout -b release
git push origin release
git branch -d release  删除release分支

运维人员下载代码做上线

git clone -b v2 地址

怎么在开源的代码贡献自己力量

1.在github中fork待贡献代码
2.类似于二次开发,在自己的仓库进行修改
3.给源代码作者提交修复bug的申请

配置文件

配置用户名和密码

1.在当前的项目生效,在其他的项目就不生效
	项目的配置文件在.git/config
git config --local user.name 'ashley"
git config --local user.email "ashely@qq.com"
2.全局配置文件,所有的项目均可通用
	项目文件配置在 ~/.gitconfig
git config --global user.name 'ashley"
git config --global user.email "ashely@qq.com"
3.系统配置文件,需要有root权限
	项目文件配置在 /etc/.gitconfig
git config --system user.name 'ashley"
git config --system user.email "ashely@qq.com"

免密登录

1.URl实现
原来的地址:https://github.com/Qingdaodianye/QD-.git
免密登录:https://用户名:密码@github.com/Qingdaodianye/QD-.git
2.通过ssh实现
ssh地址:git@github.com:Qingdaodianye/QD-.git
	2.1自己生成公钥和私钥,默认声称在当前根目录下的~/.ssh/id_rsa.pub(公钥)和id_rsa(私钥)
	ssh-keygen
	2.2拷贝公钥内容设置在github的settings中
	2.3在git本地中配置ssh地址
	git remote add origin git@github.com:Qingdaodianye/QD-.git

git忽略文件

遇见不希望被管理的文件时,我们应该忽略这样的文件

1.创建.gitignore文件
vim .gitignore
写入不需要管理的文件名例如a.py
也可以写入自己.gitignore
2.
*.h
!a.h
files/
*.py[c/d/ds]

任务管理

  • issues

    用于问题汇总,避免重复回答,也有bug管理

  • wiki

    写一些项目相关的东西文档之类的,用于之后有新人进来便于理解项目

posted @ 2019-09-13 19:29  醉醺醺的  阅读(232)  评论(0编辑  收藏  举报