git 学习使用总结二(远程仓库操作)
2016-12-21 14:58
302 查看
这篇文章仅供自己以后翻阅加深记忆,要系统的学习 git 教程(中文版),请移步到 liaoxuefeng.com 学习 git 教程部分。
我使用的是 windows 系统,所以使用 Git Bash 输入命令。同总结一一样,首先全部命令,再实例结合命令:
一、命令
1. 创建 SSH Keys
2. 关联远程仓库
3. 第一次推送本地仓库到远程
4. 克隆远程仓库
5. 列出当前目录下的全部文件及文件夹
6. 创建分支
7. 切换分支
8. 查看所有分支
9. 合并分支
非快进模式合并分支
10. 删除分支
当分支未合并时,需要强制删除
11. 查看分支合并情况
12. 隐藏工作区
13. 恢复工作区
14. 查看远程库
查看远程库的详细信息
二、命令结合实例
1. 创建 SSH Keys
将 id_rsa.pub 文件里的内容添加进自己的账号 SSH Keys 中,每一台电脑都有唯一的 id_rsa,这样就可以添加多个 id_rsa 了,只要添加 id_rsa 到 SSH Keys,那么,这台电脑就可以往自己的账号里推送仓库了。
2. 关联远程仓库
确保你始终使用的一个账号!
而不是在像我这样,先用 xinjie-just 创建的 running 仓库,然后关联的时候,提示 origin 已经存在,然后我试图推送,没有权限,因为当时创建 SSH Keys 时使用的是 lixinjie1992 这个账号,推送时,默认往 lixinjie1992这个账号推送。
但是也有办法解决这个问题,将 running-->.git-->config 中 url 的 username 改为 lixinjie1992 就行了。
3. 推送本地仓库到远程
如果遇到错误,排除多账号问题后,那可能是因为本地没有 README.md,而远程新建仓库时又初始化了一个 README.md 导致。可以先 git pull --rebase origin master 将远程的文件拉取到本地,然后使用命令 git push -u origin master 将本地文件推送到远程同步。
4. 从远程克隆
我从远程克隆了 github-pages 仓库,然后这个文件夹就出现在我的本地了:
5. 列出当前目录下的全部文件及文件夹
github-pages 文件夹下有 index.html 和 README.md 文件。
6. 创建分支
7. 切换分支
创建和切换分支可以一步完成,使用命令 git checkout -b dev
8. 查看所有分支
命令 git branch 可以查看所有分支,当前分支前用 "*" 标记出。
9. 合并分支
在 master 分支上,合并 dev 分支:
合并分支前,我先对比了 dev 分支和 master 分支下 index.html 文件内容的区别。然后将 dev 分支下 index.html 文件的内容合并到 master 分支下。
10. 删除分支
使用命令 git branch -d dev 删除 dev 分支后,在使用命令 git branch 查看所有分支,只有 master 分支了,证明 dev 分支删除成功。
11. 查看分支合并情况
查看分支合并情况,一般用在解决冲突中。
在 dev 分支上修改了 h1 的颜色。
切换到 master 分支后,又修改了 h1 的颜色。
当我尝试着把 master 分支和 dev 分支进行合并时,提示有冲突需要解决。
手动将其改变成:
处理好冲突后,再提交,并且查看合并情况:
12. 分支管理
使用非 fast-forward 模式合并
通过命令 git log --graph --pretty=oneline --abbrev-commit 列出提交日志可以看出,删除 dev 分支后,在 dev 分支上的提交信息也能显示。
13. 隐藏工作区
当 dev 分支的任务还没开发完成时,暂时没法提交。但是有一个 bug 需要尽快修复,于是可以开发一个新分支 bug 来修复。为使 dev 分支在修复 bug 时,不受干扰,可以隐藏 dev 工作区:
当 bug 修复完成后,恢复 dev 分支的工作区:
dev 分支上的内容未提交。
开始一个新分支 fixbug-01,用来修复 bug, bug 修复完成后,将其删除。
切换到 dev 分支,提示没有需要提交的内容,工作区也是干净的。使用命令 git stash list 查看被隐藏的列表,按时间倒叙排序,依次列出了 HEAD 指针指向的最后一次提交。
使用命令 git stash pop 恢复被隐藏的工作区并且删除 stash 后,提示 dev 有修改需要添加。
14. 强制删除
比如一个新功能开发到一半,还没出生便要胎死腹中,也只能将其删除了。可是这样的一个分支并没有合并到主分支上,删除的时候需要强制是删除。
只是把小写的 "d" 换成了大写的 "D" 。
15. 查看远程库信息
16. 推送分支
将需要推送到远程的分支推送到 github 上,与远程同步。
通过命令 git branch 查看当前所有分支,只有 master 分支了。将 master 分支推送到远程与 github 保持同步。
我使用的是 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
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 可以查看所有分支,当前分支前用 "*" 标记出。
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仓库的相关操作
- Git学习总结(二):GitHub、Git的远程操作
- GIT学习笔记-命令基础-远程仓库的使用
- Git学习笔记(5)----基本操作及命令(远程仓库篇)
- git使用教程二 远程仓库操作
- Git学习与使用4-远程仓库
- git学习——远程仓库的使用
- git 的使用——基本的仓库创建,文件提交,上传操作命令,远程仓库关联
- git 远程仓库 remote 使用总结
- git学习和使用(二) 远程版本库的操作和一些git的概念
- git使用教程二 远程仓库操作
- Git命令的使用_操作远程仓库——详细教程3
- 日常使用中的git操作,有关key生成,冲突处理,修改远程仓库,强制push到远程等
- git 学习使用总结一(本地操作)
- 【Git 学习笔记】2.5 - 远程仓库的使用
- Git基础(3):撤消操作和远程仓库的使用
- git的学习笔记(使用远程仓库)
- 经验总结-完整介绍Android Studio中Git的使用之在GitHub上创建一个远程仓库(二)
- $git学习总结系列(2)——远程仓库