zoukankan      html  css  js  c++  java
  • GitHub学习(一)——本地git bash(1)

    复习一下昨晚 涛兄带我们一起学习的一些在git bash 上使用的GitHub简单操作。

    基本使用

    预备状态

    ssh免密码链接

    {-t:密钥的类型
    -C:用于识别这个密钥的注释(不添加注释直接ssh-keygen -t rsa也不影响使用)
    ssh-keygen -t rsa -C "邮箱地址"}
    连续按3次回车
    (此时在win+R 在输入框里输入%userprofile%,就会跳转至你的家目录下。这时就会出现一个.ssh的文件夹,将里面的公钥pub打开,复制内容到网页的GitHub上setting里新建一个ssh密钥)

    测试是否成功链接Github

    ssh git@github.com

    他会提示 Are you sure you want to continue connecting (yes/no)? 这时需要输入:yes

    成功会提示成功认证你的账户

    Hi aaronlinv! You've successfully authenticated, but GitHub does not provide shell access.
    Connection to github.com closed.

    新建文件夹,初始化为Git仓库

    mkdir 文件夹名
    cd 文件夹名
    git init (这步是核心,他会初始化为git仓库)

    添加文件

    vi 文件名

    查看文件状态

    git status(查看当前文件状态,如果不知道下一部要做什么的话也可以使用这个命令查看提示)

    添加文件到暂存区

    git add 文件名

    提交commit -m 代表添加一个“提交信息”

    git commit -m "简述操作的内容"

    推送到GitHub(在GitHub上创建空白仓库,并复制仓库地址)

    先添加远端参考

    git remote add origin(自定义命名 一般为origin) 仓库地址

    查看远端操作(会显示 fetch和push)

    git remote -v

    推送到远端仓库(使用SSH协议需要配置SSH免密登录)

    先生成本地公钥,将他配置到仓库中
    git push -u origin master

    -u:指定默认远端仓库别名,下一次推送只需使用git push

    origin:远端仓库的别名(默认origin)

    master:分支名称

    仓库克隆

    克隆仓库到本地(可以使用HTTPS或者SSH协议)

    git clone (复制下图箭头所标的仓库地址链接)

    Git会新建一个与仓库名同名的文件夹,进入文件夹

    cd 文件夹名

    如果这个仓库已经克隆很久了,本地和远程可能存在差异了,可以拉取远程仓库最新状态到本地仓库

    git pull(先保持本地与远端仓库一致)

    分支管理

    已经克隆仓库到本地

    开始工作前,先拉取远程最新修改(可能同事已经修改代码并提交了commit)

    git pull

    新建并跳转到dev分支(也可使用git checkout -b dev)

    git switch -c dev

    查看分支情况

    git branch

    可以在dev分支上修改代码做add和commit

    推送dev分支到远程(需要拥有远端仓库的权限)

    git push origin dev

    如果需要重命名远端分支则加上 :f1

    git push origin dev:f1

    删除远端dev分支

    git push origin :dev

    合并dev分支到master(需要先切换到master分支,在merge的过程可能需要解决冲突)

    git switch master
    git merge --no-ff dev

    解决冲突

    可以直接vi 要提交的文件名,或者输入code .(提前装好vscode)他会弹出本目录下的vscode 更直观的修改
    例如出现下图的情况,以"="为分界线,"<<<<<<<"到"="为本次你修改的内容,,"="到">>>>>>>"之间为在你克隆后到你push期间别人修改的内容。如果需要添加在别人修改的后面,即把"<<<<<<<""="">>>>>>>"这些行全删掉。即可实现添加

    查看分支合并情况

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

    删除本地dev分支

    git branch -d dev

    merge和rebase

    新建并跳转到experiment分支

    git switch -c experiment

    添加并提交c4

    vim c4
    git add c4
    git commit -m "c4"

    切换回master分支

    git switch master

    添加并提交c3

    vim c3
    git add c3
    git commit -m "c3"

    merge

    使用merge方式合并分支

    先切换到master分支

    git switch master

    合并分支(会弹出commit message的编辑框,:wq 保存退出)

    git merge experiment

    查看分支合并情况

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

    rebase

    使用rebase方式合并分支

    先切换到experiment分支

    git switch experiment

    — merge示意图 引用自《Git Pro》

            使用merge合并分支,相当于三方合并,合并c2,c3,c4(未新建experiment分支前的修改c2、新建分支后master分支的修改c3、experiment分支的修改c4)

            直接使用git merge <要被merge的分支名> ,没有冲突的情况下默认使用参数:–f 即:Fast-forward(快进式合并)
            推荐使用–no-ff 即:git merge –no-ff <要被merge的分支名>
            这个参数的意思是禁止快进式合并,合并时会自动创建一次commit提交,保证提交链的完整性
            而Fast-forward合并分支会丢掉分支信息

    rebase分支

    git rebase experiment

    先切换到master分支

    git switch master

    将experiment合并到master

    git merge experiment

    查看分支合并情况

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

    — rebase示意图 引用自《Git Pro》

            rebase的原理是:找到c3和c4共同的祖先c2,暂存共同祖先c2到当前分支(expriment)的修改内容,然后将分支指向master的c3,并应用之前暂存的修改内容
            我们可以这么理解:rebase就是当前分支(experiment)提交的修改(c4)放到最前面,而把其他分支(master)已经提交的代码(c3)放到后面去,这样做的好处就是:自己写代码(experiment分支上的)将出现在master最新的一次commit中,一目了然

            rebase:黄金法则:绝对不要在公共分支使用rebase,rebase会重写提交历史

    本文根据自己回忆昨晚学习的操作结合林涛Git笔记而写,图文仍有些不明白的,还需要巩固学习。

  • 相关阅读:
    Error creating bean with name 'configurationPropertiesBeans'异常
    bootstrap.yml没有小绿叶,添加配置无提示,配置无法加载
    Hello from Docker
    windows jdk8 nacos-server-1.4.0本地搭建启动
    Myeclipse导入的maven项目相关依赖包无法下载
    Idea的Terminal窗口找不见
    Win10系统Win键无法使用
    git拉代码报"error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054"
    团队作业6:复审与事后分析
    团队作业4:项目冲刺
  • 原文地址:https://www.cnblogs.com/TieJiang13/p/12677796.html
Copyright © 2011-2022 走看看