zoukankan      html  css  js  c++  java
  • 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 保持同步。

  • 相关阅读:
    数据库日志文件太大的解决方法及原理
    邮件发送组件
    DataConnectionDialog 旧事重提
    从LINQ实例解析LINQ的另类用法,解决多条件组合问题
    重开BLOG.
    找个搜索结果总数原来可以用到这么多的技术
    Discuz3.2与Java 项目整合单点登陆
    一点感触
    Java 处理word文档后在前端展示
    大数据: 完全分布式Hadoop集群HBase安装
  • 原文地址:https://www.cnblogs.com/xinjie-just/p/6201898.html
Copyright © 2011-2022 走看看