git的使用

代码分支管理规范

  1. 实际开发中,一个仓库(通常只放一个项目)主要存在两条主分支:master与develop分支。这个两个分支的生命周期是整个项目周期。就是说,自创建出来就不会删除,会随着项目的不断开发不断的往里面添加代码。master分支是创建git仓库时自动生成的,develop分支是从master分支创建的。
  2. master:这个分支最为稳定,这个分支代表项目处于可发布的状态,所以要在项目全部完成后再往master分支合并
  3. develop:作为开发的分支,平行于master分支
  4. Feature branches:这种分支和我们程序员日常开发最为密切,称作功能分支。该分支必须从develop分支创建,完成后合并回develop分支

当需要开发新的功能时,需要从develop新建一个分支,当功能开发完成时,合并该分支到develop

  1. Release branches:这个分支用来分布新版本,做版本发布的相关操作,例如设置版本号等操作
  2. Hotfix branches:这个分支主要为修复线上特别紧急的bug准备的。必须从master分支创建,完成后合并回develop与master分支。

综上:首先新建一个项目,项目中默认有master分支,在master分支上创建develop分支,在develop上创建Feature branches用于模块的开发,多个模块可以创建多个Feature branches。开发完成后把Feature branches分支内容合并到develop分支。当所有模块开发完成后,把develop分支内容合并到master分支,等待上线。

 

具体git操作流程见下面附录

1.上传项目

首先进入要上传项目的文件夹,在文件夹下右键Git Bash,执行以下命令

1. git init

通过git init命令把这个目录变成Git可以管理的仓库

 

2. git add readme.txt(readme.txt换成自己文件名称)

用命令git add告诉Git,把文件添加到仓库,实际上就是把文件添加到暂存区

 

3. git commit -m "wrote a readme file"(引号内信息是本次提交的说明)

用命令git commit告诉Git,把文件提交到仓库,实际上就是把暂存区的所有内容提交到当前分支

 

4. git remote add origin git@github.com:michaelliao/learngit.git(把michaelliao替换成你自己的Git账户名,该命令只在第一次推送新内容的时候执行)

在本地关联远程库

 

5. git push -u origin master(master为分支名称)

把本地库的内容推送到远程

 

2.新建分支

 

1. git checkout -b dev

首先,我们创建名称为分支,然后切换到dev分支

 

2. git branch

查看当前分支

 

之后在该分支执行上传项目部分的命令,可上传代码到当前分支

 

3.合并分支

 

1. git checkout master

切换回master分支

 

2. git merge dev

合并dev分支的内容到master分支

 

3. git branch -d dev

删除dev分支

 

4.查看修改内容

1. git status

git status命令可以让我们时刻掌握仓库当前的状态,该命令只会告诉你那个文件被修改过,不会告诉你具体修改了什么。

 

2. git diff readme.txt( readme.txt为文件名)

该命令用来查看,具体修改了文件的哪些内容

 

3. git log

查看编辑过哪些信息

 

4. git log --pretty=oneline

如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数,这样会输出关键信息

 

5.版本回退

版本回退功能用于修改过内容,但是没有push到远程

1. git reset --hard HEAD^

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

注意:版本回退后,看不到之前的修改记录

 

2. git reset --hard 1a4e(1a4e为版本号)

回退到指定版本。只有当git bash窗口没有关闭的时候,可以用版本号找回,版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了

 

3. git reflog

在Git中,总是有后悔药可以吃的。当git bash 窗口关闭,Git提供了一个命令git reflog用来记录你的每一次命令,可以查看对应操作的版本号

 

4. git log

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

 

5. git reflog

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

 

6. git diff HEAD -- readme.txt(readme.txt为文件名)

命令可以查看工作区和版本库里面最新版本的区别

 

7. git checkout -- readme.txt

意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commit或git add时的状态。

 

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作

 

posted @ 2019-07-01 09:35  豆沙包1  阅读(187)  评论(0编辑  收藏  举报