自己用Git有一段时间了,随着项目越来越多,功能分支也随之增加,从简单的基础命令到随心所欲,需要自己不断地去尝试总结,下面来分享一下我的Git使用总结。

本章基础篇主要讲解一些Git代码提交流程和Git基础命令的使用。

一、Git版本分支管理

以下是一个比较基本的分支管理示范,每个公司的项目管理运作不同,分支管理也有各自的特色,但万变不离其宗。

1) dev分支用于日常开发

2) 当有新版本需要发布时,把dev代码合并到release分支做集成测试,并等待发布

3) release分支进入bug修复阶段

4) 如果在release分支发现bug,那么在release分支进行修改,并使用git cherry-pick把修复bug的commit合并到release分支上

(cherry-pick与merge不同,它的合并是以commit为单位而非整个branch)

完成后,release分支上所有代码改动(除版本号之外)都应该已经合到了dev分支上

5) release分支测试完成后,发布到线上环境

6) 并且打上tag,合并到master分支上

7) 如果在线上出现bug,那么在master上hot fix修复

8) 出现hot fix并修复后,需要重新把hot fix的代码合并到dev以及release分支中去使代码保持一致

  

二、Git基本命令汇总

1.查看本地文件状态

git status  —-查看本地、本地仓库、缓存(stash)的文件修改状态

—红色 代表本地工作空间的文件修改

—蓝色 代表提交到本地仓库中的文件(git add .)

2.切换版本/覆盖当前修改文件

git branch - 查看当前版本

git branch -a 查看所有版本

git checkout XXX(版本名)  —-切换到远程库中XXX版本

git checkout filepath    —覆盖当前修改的文件

git checkout .           -覆盖当前所有修改文件

3.从远程库获取最新代码

git remote -查看远程库名称

git remote -v

git remote show XXX(远程库名)

git fetch — 从remote端拉取最新代码

git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

git rebase —把远程拉回的代码和本地合并

4.缓存本地代码

当要切换到其它版本时,想保存在当前版本修改的文件:在切换前做

git stash   —-把本地修改过不需要提交的文件放入缓存

git checkout XXX(版本)   —切换库版本

切回原来的库,把文件从stash缓存中拿出来

git stash pop — 从缓存中拉出

5.提交远程库

git add .

git commit -m ''

git remote 查看远程关联名称

git push remote的名称 本地master

6.处理冲突

git fetch 拉取最新工程

git pull XXX(远程库名) XXX(分支名)  -把拉取的最新代码跟当前工作空间合并

冲突产生后,去工作空间修改后,>>>新代码===老代码<<<,保留最终代码,删除提示符,重新提交。

7.把本次提交的内容提交到其他分支(比如发布时bug的修改)

git cherry-pick commitId

8.建议执行顺序

git status 查看修改状态

git checkout filename 放弃某文件的修改。

git stash 储存修改

git fetch 拉取最新工程

git rebase 与本地分支合并

git stash pop 弹出储存文件,此时新文件可能会与你的文件产生冲突,解决冲突。

git add filename 添加某个修改文件

git add . 提交所有加点

git reset HEAD filename 回滚指定文件,回滚所有加点:"git reset HEAD . "

git commit -m''

git push 本地remote远程分支名,本地分支名

例我的本地分支为master 远程remote 别名为 origin 则提交为git push origin master

9.切换HEAD

git reflog --查看HEAD记录

git reset --hard HEAD^       //切换到之前一个HEAD

git reset --hard fad4462      // 切换到某个已经回退的HEAD

10.刪除 local branch

git branch -d <branch_name>

Git命令汇总(基础篇)的更多相关文章

  1. Git命令汇总(补充篇)

    上一篇<Git命令汇总基础篇>总结了使用Git的基本命令,这一篇作为补充主要给大家讲一些平时使用中的技巧和总结 . 学会了这些命令,已经基本解决了使用Git中大部分问题. 1.gitign ...

  2. Git操作(基础篇)

    Git操作(基础篇) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常 ...

  3. 常用Git命令汇总

    常用Git命令汇总 跟着R哥来到了新公司(一个从硬件向互联网转型中的公司),新公司以前的代码基本是使用SVN做版本控制,甚至有些代码没有做版本控制,所以R哥叫HG做了一次Git分享,准备把公司所有的代 ...

  4. 3分钟学会git命令的基础使用

    前言废话 下面我们就来看看gitlab服务器搭建好(http://www.cnblogs.com/JeremyWYL/p/8258368.html) 之后,git命令的基础使用,基本上就能满足我们平时 ...

  5. 常用 Git 命令汇总

    Git 命令汇总 1 Git 的一些通用术语 1.1 Git 的几个区 1.2 如何标识 Git 的某次提交 2 Git 配置 2.1 配置 2.2 读取配置 2.3 与 Beyond Compare ...

  6. Git命令之回退篇 git revert git reset

    Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与 ...

  7. GIT之二 基础篇(2)

    远程仓库的使用 要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某个项目时,需要管 ...

  8. windows下使用Git命令汇总

    这里只是简单汇总下Git主要命令,方便记忆:汇总的不好,请各位包容,谢谢!想看详细讲解,推荐廖雪峰大神的教程,地址如下:http://www.liaoxuefeng.com/wiki/00137395 ...

  9. GIT之二 基础篇(1)

    GIT基础 取得项目的 Git 仓库 有两种取得 Git 项目仓库的方法.第一种是在现存的目录下,通过导入所有文件来创建新的 Git 仓库.第二种是从已有的 Git 仓库克隆出一个新的镜像仓库来. 在 ...

随机推荐

  1. SrpingDruid数据源加密数据库密码

    前言 在工作中遇到这样一个问题:开发过程中将数据库的账号.密码等信息配置在了一个单独的properties配置文件中(使用明文).但运维人员要求在配置文件中的密码一律不得出现明文. 环境 Spring ...

  2. Unable to open debugger port (127.0.0.1:51554): java.net.SocketException "socket closed"

    刚开始使用IDEA 总是有各种各样奇葩的问题 启动报错: Unable to open debugger port (127.0.0.1:51554): java.net.SocketExceptio ...

  3. x86-64栈帧中的“红色区域” red zone of stack frame on x86-64

    前几天看System V AMD64 ABI标准的时候发现栈帧的顶部后面有一块"red zone",在学cs:app3e/深入理解操作系统的时候并没有遇到这个,总结一下. 引用标准 ...

  4. poj2689Prime Distance(大区间筛素数)

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19635   Accepted: 5273 D ...

  5. Turn the corner

    Problem Description Mr. West bought a new car! So he is travelling around the city. One day he comes ...

  6. JavaScript Function.call() 函数详解

    语法 functionObject.call( [ thisObj [, arg1 [, arg2 [, args...]]]] ) call()函数用于调用当前函数functionObject,并可 ...

  7. jquery getScript动态加载JS方法改进详解[转载]

    转载自http://www.jb51.net/article/31973.htm 有许多朋友需要使用getScript方法动态加载JS,本文将详细介绍此功能的实现方法     $.getScript( ...

  8. aria-label

    元素中的 aria-label用来命名一个元素     它的值可以是任何字符   读屏软件就会读出aria-label里的内容 <div role=”form” aria-labelledby= ...

  9. Problem B: 点之间的距离

    #include <iostream> #include <vector> #include <cmath> #include <algorithm> ...

  10. rem布局配合less的快速开发

    最近在进行静态页面的制作,为了方便和快速的布局,自己整理了一套工具可以快速的进行工作,剩余的时间大家都懂的,话不多说,来看具体的东西吧! 1.ps 下载这个软件→cutterman 十分强大的切图功能 ...