git 学习使用总结二(远程仓库操作)
这篇文章仅供自己以后翻阅加深记忆,要系统的学习 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 学习使用总结二(远程仓库操作)的更多相关文章
- git 学习使用总结三(远程仓库操作)
这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分. pull, fetch, clone, push, chec ...
- Git 学习(五)远程仓库
Git 学习(五)远程仓库 之前的章节所说的是本地Git仓库的操作,版本管理的优越性显然不会仅仅在本地.远程仓库也就是服务器或是网络端的仓库操作也是必须的. 本文具体说明 Git 的远程仓库操作,示例 ...
- Git 学习(三)本地仓库操作——git add & commit
Git 学习(三)本地仓库操作——git add & commit Git 和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念.这在上文已有提及,本文具体说明什么是工作区及暂存区,以及 ...
- Git学习之连接GitHub远程仓库
在看此教程之前电脑上应该已安装好git,并且配置好基本信息,Git新手请从头开始. 第1步:创建SSH Key 在用户主目录下(Mac系统是在用户主目录下,可通过命令ll -a查看,Windows下自 ...
- Git学习03 --远程仓库
把本地库的内容推送到远程(github), 用git push命令,实际上是把当前分支master推送到远程. 由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的 ...
- Git(进击学习:远程仓库操作)-V3.0
1.查看当前的远程仓库:git remote或git remote -v 2.添加远程仓库:git remote add [shortname] [url] git remote add pb git ...
- Git学习笔记(二) · 非典型性程序猿
远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...
- Android基础新手教程——1.5.2 Git之使用GitHub搭建远程仓库
Android基础新手教程--1.5.2 Git之使用GitHub搭建远程仓库 标签(空格分隔): Android基础新手教程 本节引言: 在上一节中.我们学习了怎样使用Git.构建我们的本地仓库.轻 ...
- Git提交到多个远程仓库(多看两个文档)
Git提交到多个远程仓库(多看两个文档) 一.总结 一句话总结: 二. Git提交到多个远程仓库(多看两个文档) 有两种做法,先看第一种 一.通过命令行进行操作 例如我有下面两个仓库: Mybatis ...
随机推荐
- 哇 真的是一个好插件!!!Sublime Text编辑文件后快速刷新浏览器
http://9iphp.com/web/html/sublime-text-refresh-browser.html这篇博文咯 来源:[Tips]Sublime Text编辑文件后快速刷新浏览器 - ...
- 免费 PSD 素材:25个全新的界面设计资源
在这篇文章中,我们给大家收集了25套全新的 UI 设计素材.这些来自优秀设计师的 PSD 源文件素材让其它的设计师们在设计用户界面原型的时候能够非常便利. 网站用户界面,移动应用程序用户界面和对设计师 ...
- 2013年最新流行的响应式 WordPress 主题【上篇】
WordPress 是最流行的内容管理系统,经历了多年的发展和演变.它的成功体现在庞大的社区,数百万的用户,设计师和开发者推动着 WordPress 往更高的层次发展. 海量的免费主题是 WordPr ...
- [js开源组件开发]table表格组件
table表格组件 表格的渲染组件,demo请点击http://lovewebgames.com/jsmodule/table.html,git源码请点击https://github.com/tian ...
- mysql A表部分记录复制到B表
[不定时更新] 1.将一张表中部分记录的一或多个字段复制到另一张表中: 表A: 表B: 执行SQL: insert into B(f_userId,f_nickname) select f_telep ...
- Atitit.在线充值功能的设计
Atitit.在线充值功能的设计 1. 流程1 2. Js sdk api 增加订单1 3. Java api 返回servlet处理1 3.1. 返回网址的本地host测试2 1. 流程 本地增 ...
- Xcode常用快捷键
1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有文件CMD + SHIFT + S: 另存为CMD + ...
- Java虚拟机JVM学习07 类的卸载机制
Java虚拟机JVM学习07 类的卸载机制 类的生命周期 当Sample类被加载.连接和初始化后,它的生命周期就开始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就 ...
- 通过系统架构漏洞获取系统VIP资源
首先说我的构思: 一本小说,有很多集,每一集请求下载都会生成一个k的json,例如: 有了这个k我们就可以定位到这一集具体的位置,这本小说是固定的id,每一集的K找到了,剩下的不就简单了. 再通过抓包 ...
- 项目管理之道--纪我的新书《PMP项目管理认证学习指南(第4版)》出版并预祝大卖!
新年伊始,我最新的项目管理书籍——<PMP项目管理认证学习指南(第4版)>也出版了,真是新年新气象啊!翻译英文书籍是一件任重道远的工作,除了要具备扎实的基本功,熟悉相关的领域外,还需要细致 ...