1,填写信息
git config --global user.name "用户名"
git config --global user.email "邮箱"

2,创建仓库
git init 初始化仓库(会生成一个.git目录)
mkdir xxx 创建仓库目录
cd 切换目录
pwd 当前位置

3,添加文件到版本库
touch xxx 创建文件
vi xxx 打开文件
git add xxx 将指定文件添加但暂存区
git add. 将当前目录下所有文件添加到暂存区
git commit -m '描述' 将暂存区保存到版本库
git commit -a -m '描述' 直接提交到版本库

4,修改文件查看文件和不同
git status 查看当前仓库的状态
git diff 查看此次的修改和上次的不同

5,版本回退
git log 查看之前的日志 git log --pretty=oneline 整理一下
git reset -hard HEAD^ 回退到上一个版本
git reset -hard HEAD^^ 回退到上上个版本
git reset -hard HEAD~100 回退到往上100个版本

6,回退到未来某个版本
git reflog 记录每一次命令
git reset -hard commit id 回退到历史修改版本

7,撤销修改
git checkout -- xxx 撤销工作区修改
git reset HEAD file 撤销暂存区的修改,重放回工作区
对已经提交到版本库的文件直接版本回退

8,删除文件
git rm xxx 从版本库删除文件 也要提交 git commit -m '描述'

9,远程仓库(GitHub)
git remote add origin http://github.com/账号名/仓库名.git origin 是远程库的名字,github的默认叫法
git push -u origin 分支名 把本地仓库的内容推送到github仓库
git push origin master 上面命令第一次推送之后,以后的每次本地提交,使用不带 -u 参数的命令即可
git clone git remote add origin http://github.com/账号名/仓库名.git 克隆仓库

10,分支管理
git checkout -b 分支名 创建并切换分支
git branch 分支名 创建分支
git branch 查看所有分支 当前分支会有*号
git checkout 分支名 切换分支
git merge 要合并的分支名(不是当前) 合并分支
git branch -d 分支名 删除分支

11,解决冲突
问题:分支1修改文件提交后,分支2没有合并分支1修改的文件,也修改并提交了,之后在合并就会有冲突
查看:合并时会报,git status会告诉我们冲突的文件
解决:修改文件手动解决,Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改后保存
git log --graph 查看分支合并图

12,bug分支
问题:修复bug时,会通过创建新的bug分支进行修复,然后合并,最后删除,当马上需要解决bug分支上的bug'时,而当前的分支还没有完成,无法提交
解决:git stash 将当前的工作现场隐藏起来,以后恢复继续工作
git stash 查看隐藏
git stash pop 恢复现场

13,feature
开发一个新实验性功能,最好新建一个feature分支,防止主分支被打乱;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

git的基本使用和问题的更多相关文章

  1. Git 子模块 - submodule

    有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...

  2. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  3. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  4. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  5. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  6. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

  7. [版本控制之道] Git 常用的命令总结(欢迎收藏备用)

    坚持每天学习,坚持每天复习,技术永远学不完,自己永远要前进 总结日常开发生产中常用的Git版本控制命令 ------------------------------main-------------- ...

  8. 【解决方案】Myeclipse 10 安装 GIT 插件 集成 步骤 图解

    工程开发中,往往要使用到集成GIT ,那么下面说说插件安装步骤 PS:以Myeclipse 10 为例,讲解集成安装步骤. ----------------------main------------ ...

  9. git 命令

    切换仓库地址: git remote set-url origin xxx.git切换分支:git checkout name撤销修改:git checkout -- file删除文件:git rm  ...

  10. git亲测命令

    一.Git新建本地分支与远程分支关联问题 git checkout -b branch_name origin/branch_name 或者 git branch --set-upstream bra ...

随机推荐

  1. java operate

    class OperateDemo { public static void main(String[] args) { /* + - * / %(取余数) */ int x = 2810; Syst ...

  2. CodeWarrior 10 配置Jlint初始化文件

    新建一个项目之后,飞思卡尔的仿真器的配置不如德州仪器那么简单.他需要一些配置. 当我们新建一个工程后,可以采取如下步骤配置Jlint: 1.右击工程名,选择属性. 2.在Run/Debug Setti ...

  3. UnitZ Battlegrounds beta5 - Unity吃鸡类型游戏模版 源码 仿绝地求生

    Requires Unity 2018.2.6 or higher.The first battle royale game starter kit on Asset Store, all syste ...

  4. JVM学习02:GC垃圾回收和内存分配

    JVM学习02:GC垃圾回收和内存分配 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. GC垃圾回收和内存分配知识要点Xmind梳理 案例分析1-(G ...

  5. oracle 锁表sql 解锁

    1.select  *  from  v$locked_object; 查看具体的 : select  session_id , oracle_username, process from v$loc ...

  6. 20-matlab全排列-函数调用

    matlab中global的用法 Matlab 中子函数不传参直接调用主函数global变量方法  在一个m文件里要调用一个函数(自定义的),但是我希望这个函数能利用并修改workspace中的变量( ...

  7. 【java-console】如何双击运行可执行jar包及遇到依赖dll报错问题的解决办法

    如何配置双击运行可执行jar包的步骤,请移步到   这里   查看具体的操作,此处不再介绍. 本文主要解决如何处理依赖dll报错的问题解决办法. 我有一个jar包可执行文件运行需要依赖第三方的dll文 ...

  8. java redispool测试类保存

    这两天睡眠不足,今晚吃完饭,肚子烦躁的很,迟迟进入不了代码的状态,强打精神,又赶上处理了几个编辑器的报错,等到真正面对问题的时候又是晚上十一点, 晚上十一点是幸运点,到这个点无关问题都能解决完毕进入调 ...

  9. 现代编译原理——第二章:语法分析之LL(K)

    转自: http://www.cnblogs.com/BlackWalnut/p/4472122.html LL(K)语法分析技术是建立在预测分析的技术之上的.我们先来了解预测分析技术.考虑以下文法: ...

  10. java8 先groupingBy 后map

    Map<Integer,List<String>> mapBanJI_UserNameList=list.stream().collect(Collectors.groupin ...