这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分。

我使用的是 windows 系统,所以使用 Git Bash 输入命令。同总结一一样,首先全部命令,再实例结合命令:

一、命令

1. 创建 SSH Keys

$ ssh-keygen -t rsa -C "youremail@example"

2. 关联远程仓库

$ git remote add origin git@github.com:yourname/repo-name.git

3. 第一次推送本地仓库到远程

$ git push -u origin master

4. 克隆远程仓库

$ git clone git@github.com:username/repo-name.git

5. 列出当前目录下的全部文件及文件夹

$ ls

6. 创建分支

$ git branch <branch-name>

7. 切换分支

$ git checkout <branch-name>

8. 查看所有分支

$ git branch
$ git branch -v(包括commit-id和commit-info) 
$ git branch -vv(包括commit-id,commit-info和关联的远程分支)
$ git branch -a(所有分支,包括远程分支)
$ git branch -r(只查看远程分支)

9. 合并分支

$ git merge <branch-name>

非快进模式合并分支

$ git merge --no-ff -m "description..." <branch-name>

10. 删除分支

$ git branch -d <branch-name>

当分支未合并时,需要强制删除

$ git branch -D <branch-name>

11. 查看分支合并情况

$ git log --graph --pretty=oneline --abbrev-commit

12. 隐藏工作区

$ git stash

13. 恢复工作区

$ git stash pop

14. 查看远程库

$ git remote

查看远程库的详细信息

$ git remote -v

二、命令结合实例

1. 创建 SSH Keys

$ ssh-keygen -t rsa -C "youremail@example.com"

将 id_rsa.pub 文件里的内容添加进自己的账号 SSH Keys 中,每一台电脑都有唯一的 id_rsa,这样就可以添加多个 id_rsa 了,只要添加 id_rsa 到 SSH Keys,那么,这台电脑就可以往自己的账号里推送仓库了。

2. 关联远程仓库

$ git remote add origin git@github.com:yourname/repo-name.git

确保你始终使用的一个账号!

而不是在像我这样,先用 xinjie-just 创建的 running 仓库,然后关联的时候,提示 origin 已经存在,然后我试图推送,没有权限,因为当时创建 SSH Keys 时使用的是 lixinjie1992 这个账号,推送时,默认往 lixinjie1992这个账号推送。

但是也有办法解决这个问题,将 running-->.git-->config 中 url 的 username 改为 lixinjie1992 就行了。

3. 推送本地仓库到远程

$ git push -u origin master 

如果遇到错误,排除多账号问题后,那可能是因为本地没有 README.md,而远程新建仓库时又初始化了一个 README.md 导致。可以先 git pull --rebase origin master 将远程的文件拉取到本地,然后使用命令 git push -u origin master 将本地文件推送到远程同步。

4. 从远程克隆

$ git clone git@github.com:username/repo-name.git

我从远程克隆了 github-pages 仓库,然后这个文件夹就出现在我的本地了:

5. 列出当前目录下的全部文件及文件夹

$ ls

github-pages 文件夹下有 index.html 和 README.md 文件。

6. 创建分支

$ git branch dev

7. 切换分支

$ git checkout dev

创建和切换分支可以一步完成,使用命令 git checkout -b dev

8. 查看所有分支

$ git branch

命令 git branch 可以查看所有分支,当前分支前用 "*" 标记出。

更新(2019年9月24日,MacBook Pro VSCode 终端):

$ git branch -v

命令 git branch -v 可以查询出分支的同时,还包括 commit id 和 提交注释。

$ git branch -a

命令 git branch -a 可以查询出远程和本地工作区的所有分支。a 表示 all 所有。

$ git branch -vv

命令 git branch -vv 可以查询出分支的同时,还包括 commit id,提交注释和关联的远程分支。

$ git branch -r

命令 git branch -r 与 git branch 对应,前者查询出所有的远程分支,后者查询出所有的本地工作区的分支。

9. 合并分支

$ git merge dev

在 master 分支上,合并 dev 分支:

合并分支前,我先对比了 dev 分支和 master 分支下 index.html 文件内容的区别。然后将 dev 分支下 index.html 文件的内容合并到 master 分支下。

10. 删除分支

$ git branch -d dev

使用命令 git branch -d dev 删除 dev 分支后,在使用命令 git branch 查看所有分支,只有 master 分支了,证明 dev 分支删除成功。

11. 查看分支合并情况

$ git log --graph --pretty=oneline --abbrev-commit

查看分支合并情况,一般用在解决冲突中。

在 dev 分支上修改了 h1 的颜色。

切换到 master 分支后,又修改了 h1 的颜色。

当我尝试着把 master 分支和 dev 分支进行合并时,提示有冲突需要解决。

手动将其改变成:

处理好冲突后,再提交,并且查看合并情况:

12. 分支管理

使用非 fast-forward 模式合并

$ git merge --no-ff -m "description for commit" <branch-name>

通过命令 git log --graph --pretty=oneline --abbrev-commit 列出提交日志可以看出,删除 dev 分支后,在 dev 分支上的提交信息也能显示。

13. 隐藏工作区

当 dev 分支的任务还没开发完成时,暂时没法提交。但是有一个 bug 需要尽快修复,于是可以开发一个新分支 bug 来修复。为使 dev 分支在修复 bug 时,不受干扰,可以隐藏 dev 工作区:

$ git stash

当 bug 修复完成后,恢复 dev 分支的工作区:

$ git stash pop

dev 分支上的内容未提交。

开始一个新分支 fixbug-01,用来修复 bug, bug 修复完成后,将其删除。

切换到 dev 分支,提示没有需要提交的内容,工作区也是干净的。使用命令 git stash list 查看被隐藏的列表,按时间倒叙排序,依次列出了 HEAD 指针指向的最后一次提交。

使用命令 git stash pop 恢复被隐藏的工作区并且删除 stash 后,提示 dev 有修改需要添加。

14. 强制删除

比如一个新功能开发到一半,还没出生便要胎死腹中,也只能将其删除了。可是这样的一个分支并没有合并到主分支上,删除的时候需要强制是删除。

$ git branch -D <branch-name>

只是把小写的 "d" 换成了大写的 "D" 。

15. 查看远程库信息

$ git remote

16. 推送分支

将需要推送到远程的分支推送到 github 上,与远程同步。

$ git push origin master

通过命令 git branch 查看当前所有分支,只有 master 分支了。将 master 分支推送到远程与 github 保持同步。

git 学习使用总结二(远程仓库操作)的更多相关文章

  1. git 学习使用总结三(远程仓库操作)

    这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. pull, fetch, clone, push, chec ...

  2. Git 学习(五)远程仓库

    Git 学习(五)远程仓库 之前的章节所说的是本地Git仓库的操作,版本管理的优越性显然不会仅仅在本地.远程仓库也就是服务器或是网络端的仓库操作也是必须的. 本文具体说明 Git 的远程仓库操作,示例 ...

  3. Git 学习(三)本地仓库操作——git add & commit

    Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...

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

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

  5. Git学习03 --远程仓库

    把本地库的内容推送到远程(github), 用git push命令,实际上是把当前分支master推送到远程. 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的 ...

  6. Git(进击学习:远程仓库操作)-V3.0

    1.查看当前的远程仓库:git remote或git remote -v 2.添加远程仓库:git remote add [shortname] [url] git remote add pb git ...

  7. Git学习笔记(二) · 非典型性程序猿

    远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...

  8. Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库

    Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...

  9. Git提交到多个远程仓库(多看两个文档)

    Git提交到多个远程仓库(多看两个文档) 一.总结 一句话总结: 二. Git提交到多个远程仓库(多看两个文档) 有两种做法,先看第一种 一.通过命令行进行操作 例如我有下面两个仓库: Mybatis ...

随机推荐

  1. Web 开发最有用的50款 jQuery 插件集锦——《图片特效篇》

    <Web 开发最有用的50款 jQuery 插件集锦>系列文章向大家分享最具创新的50款 jQuery 插件,这些插件分成以下类别:网页布局插件,导航插件,表格插件,滑块和转盘插件,图表插 ...

  2. Awesomplete - 零依赖的简单自动完成插件

    Awesomplete 是一款超轻量级的,可定制的,简单的自动完成插件,零依赖,使用现代化标准构建.你可以简单地添加 awesomplete 样式,让它自动处理(你仍然可以通过指定 HTML 属性配置 ...

  3. Method Draw – 很好用的 SVG 在线编辑器

    Method Draw 是一款在线 SVG 编辑器,是 SVG Edit 的一个分支.Method Draw 的目的是改进 SVG Edit 的可用性和用户体验.它移除了 line-caps/corn ...

  4. NodeBB – 基于 Node.js 的开源论坛系统

    NodeBB 是一个更好的论坛平台,专门为现代网络打造.它是免费的,易于使用. NodeBB 论坛软件是基于 Node.js 开发,支持 Redis 或 MongoDB 的数据库.它利用 Web So ...

  5. Quartz2D复习(三) --- 涂鸦

    和上一篇手势解锁不一样,手势解锁只画了一条路径,从触摸开始-->触摸移动-->触摸结束 ,然后路径完成了,渲染出来就是手势解锁了: 这次涂鸦想做到的效果是可以画很多次线段或弧,每次又可以设 ...

  6. Ubuntu下使用Git和GitHub

    刚刚学习git和github,网上的知识太杂太乱.照着折腾了很长的时间,都没有搞出个结果,心里十分痒痒,最后终于在github上看到成果.本文适合刚刚接触github但是急于想看到效果的同学,当然gi ...

  7. CGAffineTransform方法汇总

    CGAffineTransform是二维的仿射变换,可以进行位移,旋转,缩放,CGAffineTransform实际上是一个矩阵. CGAffineTransform { CGFloat a, b, ...

  8. android 加载自定义图片并在图片上绘图

    来源:毕设 关键词:Bitmap Canvas //毕设中需要自定义室内地图,并且在地图上绘制轨迹 //此处是一个测试Demo,实现图片的加载和记录手指在屏幕上的运动轨迹 图片的载入 使用系统提供的内 ...

  9. java验证码组件kaptcha使用方法

    使用方法: 项目中导入kaptcha-2.3.jar包在web.xml里面新增: <!-- 登陆验证码Kaptcha -->    <servlet>        <s ...

  10. vim添加Vundle插件

    1.git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 2.vim /etc/vimrc se ...