git使用教程步骤

1.安装git
安装完后,在开始菜单里找到“git”->“Git Bash”,蹦出一个类似命令行窗口,说明安装成功。
2 注册git
在打开的Git Bash里输入命令行:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

3 创建版本库
在合适的地方新建一个空目录(文件夹),运行git init命令把这个目录变成Git可以管理的仓库
4 提交版本或文件
运行命令 $ git add . 提交文件
运行命令 $ git commit -m “by name git”
5.版本查看
运行命令 $ git status 命令可以让我们时刻掌握仓库当前的状态
运行命令 $ git diff 命令可以看到我们修改了哪里
6 版本回退
运行命令 $ git log 命令可以看到版本历史记录
运行命令 $ git log --pretty=oneline 可以省略不必要的信息
用HEAD表示当前版本,上一个版本就是HEAD^,
上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来 所以写成HEAD~100。
运行命令 $ git reset --hard HEAD^ 回到上一个版本
运行命令 $ git reset --hard 3628164 可以跳回到特定的版本。
7 工作区和暂缓区

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现 在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存 区的所有修改。
8.管理修改
第一次修改 -> git add -> 第二次修改 -> git add -> git commit

9 撤销修改
运行命令 $ git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销
命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
运行命令 $ git reset HEAD readme.txt 可以把暂存区的修改撤销掉(unstage),重新放回工作区

10 删除文件

运行命令 $ rm test.txt 删除版本库里的文件,记得提交修改后的文本。
运行命令 $ git checkout -- test.txt 撤销删除的文件,记得提交撤销后的版本。

11 远程仓库

注册一个github账号

12 添加远程库
运行命令 $ git remote add origin git@github.com:michaelliao/learngit.git
本地与远程库关联起来
运行命令 $ git push -u origin master 把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
运行命令 $ git push origin master 把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!

13 从远程库克隆
运行命令 $ git clone git@github.com:michaelliao/gitskills.git 从远程库克隆一份版本到本地库。

14 分支管理

(1)创建分支与合并分支
运行命令 $ git checkout -b dev git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:
$ git branch dev
$ git checkout dev
运行命令 $ git branch 命令查看当前分支 git branch命令会列出所有分支,当前分支前面会标一个*号。
运行命令 $ git checkout master 切换回master分支
运行命令 $ git merge dev 把dev分支的工作成果合并到master分支上
运行命令 $ git branch -d dev 删除dev分支
运行命令 $ git branch 查看branch,就只剩下master分支了

(2) 解决合并冲突
运行命令 $ git log --graph --pretty=oneline --abbrev-commit
可以看到和合并分支图
(3)分支管理策略
运行命令 $ git merge --no-ff -m "merge with no-ff" dev 请注意--no-ff参数,表示禁用Fast forward 因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。
(bug分支)
当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交:并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?
幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:
运行命令 $ git checkout master 切换到master分支上,新建bug分支
运行命令 $ git checkout -b issue-101 bug分支
修复完bug后需要提交代码并删除bug分支,继续之前分支的工作
运行命令 $ git add readme.txt
运行命令 $ git commit -m "fix bug 101"
修复完成后,切换到master分支,并完成合并,最后删除issue-101分支:
运行命令 $ git checkout master
运行命令 $ git merge --no-ff -m "merged bug fix 101" issue-101合并分支
运行命令 $ git branch -d issue-101 删除分支
太棒了,原计划两个小时的bug修复只花了5分钟!现在,是时候接着回到dev分支干活了!
运行命令 $ git checkout dev 切换到dev分支继续分支工作
运行命令 $ git status 查看分支状态
运行命令 $ git stash list 查看之前的工作现场
运行命令 $ git stash pop 回到之前工作的现场

15 Feature分支
添加一个新功能时,你肯定不希望因为一些实验性质的代码,把主分支搞乱了,所以,每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。
运行命令 $ git checkout -b feature-vulcan 创建新功能分支
运行命令 $ git add vulcan.py
运行命令 $ git status
运行命令 $ git checkout dev 切换回到分支dev继续开发
一切顺利的话,feature分支和bug分支是类似的,合并,然后删除。
但是,就在此时,接到上级命令,因经费不足,新功能必须取消!
虽然白干了,但是这个分支还是必须就地销毁:
运行命令 $ git branch -D feature-vulcan 强行删除功能分支

16 多人协作
运行命令 $ git remote -v 显示更详细的信息
你的小伙伴已经向origin/dev分支推送了他的提交,而碰巧你也对同样的文件作了修改,并试图推送:
推送失败,因为你的小伙伴的最新提交和你试图推送的提交有冲突,解决办法也很简单,Git已经提示我们,先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送:
git pull也失败了,原因是没有指定本地dev分支与远程origin/dev分支的链接,根据提示,设置dev和origin/dev的链接:

运行命令 $ git branch
运行命令 $ git pull

git使用教程及github远程仓库管理的更多相关文章

  1. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  2. Git - Git本地仓库与GitHub远程仓库关联

    前言 Git本地仓库与GitHub仓库的关联逻辑如下 创建Key 在本地仓库下,新建Key文件夹,然后打开Key文件夹,单击鼠标右键,选择Git Bash Here. 输入命令:ssh-keygen ...

  3. Git使用教程之从远程库克隆项目(四)

    我们接下来在本地新建一个文件夹,把刚刚github上创建的项目克隆下来,操作步骤如下: 1.克隆项目: 找到github上面的SSH地址,如图: 开始克隆: $ git clone git@githu ...

  4. git使用笔记1:结合Github远程仓库管理项目

    git是一个十分好用的版本控制工具,我们经常在本地使用git进行项目开发,Git 并不像 SVN 那样有个中心服务器,如果想要通过 Git 分享你的代码或者与其他开发人员合作,就需要将数据放到一台其他 ...

  5. Visual Studio Git本地Repos和GitHub远程Repos互操作

    近期准备将一个项目开源到GitHub中,N-Sharding,.Net版本的分库分表数据访问框架.中间遇到了点小问题,整理了一下. 1. GitHub上Create New Repos 2. 代码Ch ...

  6. Git本地仓库与Github远程仓库关联

    如果你已经在本地创建了一个Git仓库,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,那就需要用到SSH Key,github拿到了你的公钥就会知道内容是你推送的. SSH Key ...

  7. Git操作_从github远程仓库克隆到本地仓库, 本地代码提交

    实现目的: 从github远程仓库克隆到本地仓库:本地代码提交到远程仓库. 一.从github远程仓库克隆到本地仓库: 命令行切换到指定的仓库想存放的目录,执行如下命令:git clone  远程仓库 ...

  8. Git学习之连接GitHub远程仓库

    在看此教程之前电脑上应该已安装好git,并且配置好基本信息,Git新手请从头开始. 第1步:创建SSH Key 在用户主目录下(Mac系统是在用户主目录下,可通过命令ll -a查看,Windows下自 ...

  9. git本地仓库与github远程仓库链接协议问题

    前提条件:有github账号,本地安装了git,能上网. 环境:ubuntu14.0.4LTS 首先在你得在github上创建一个仓库new repository,然后再本地创建一个文件夹mkdir ...

随机推荐

  1. EF6多线程与分库架构设计之Repository

    1.项目背景 这里简单介绍一下项目需求背景,之前公司的项目基于EF++Repository+UnitOfWork的框架设计的,其中涉及到的技术有RabbitMq消息队列,Autofac依赖注入等常用的 ...

  2. Linux select I/O 复用

    用途 在处理多个socket套接字的时候,会很自然的遇到一个问题:某个套接字什么时候可读?什么时候可写?哪些套接字是需要关闭的?我们可以回忆一下,一般我们在最开始编写socket程序的时候,send, ...

  3. 数字信号处理MATLAB简单序列

    数字信号处理应用的几个基本序列: 1 单位样本序列 function mainImseq() clc clear disp('生成抽样序列'); y=imseq(,,); %调用样本函数,此时序列下标 ...

  4. 正则表达式中的match,test,exec,search的返回值

    今天突然被问到了正则表达式,因为长时间不用突然不知道怎么用了,只知道有这么个东西.然后去网上查了一下,感觉写的不少,但解释的有点模糊,今天我来浅谈一下. 1,match的用法 A,在不加全局“g”的情 ...

  5. 爬虫:把廖雪峰的教程转换成 PDF 电子书

    写爬虫似乎没有比用 Python 更合适了,Python 社区提供的爬虫工具多得让你眼花缭乱,各种拿来就可以直接用的 library 分分钟就可以写出一个爬虫出来,今天就琢磨着写一个爬虫,将廖雪峰的 ...

  6. 表单界面的兼容PC手机端解决方案

    就当写一篇随笔吧~上星期还在做加盟模块(兼容微信端),这星期已经加班做快递扫码模块(react+node),所以我感觉只有弹药备足了才能稍微轻松些应对各种需求.实话说在同个部门的大佬面前差距确实大,如 ...

  7. laravel项目中手机浏览器在线阅读pdf文件-->PDFJS插件

    第一步:下载链接:http://mozilla.github.io/pdf.js/getting_started/#download 第二步:将下载的文件放在项目中. 第三步:在项目中想要预览的地方给 ...

  8. Thrift入门初探(2)--thrift基础知识详解

    昨天总结了thrift的安装和入门实例,Thrift入门初探--thrift安装及java入门实例,今天开始总结一下thrift的相关基础知识. Thrift使用一种中间语言IDL,来进行接口的定义, ...

  9. canvas绘图不清晰的解决方案

    现象描述 同样大小的图片(60x60px)用canvas和DOM绘制,结果发现canvas的画面质量要差很多.结果如下图所示. 上图中,左侧红框中的金币采用DOM绘制,右侧和下方的金币和文字等使用ca ...

  10. 《Django By Example》第七章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:咳咳,第七章终于来了.其 ...