zoukankan      html  css  js  c++  java
  • learn git(远程仓库github)

    |由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

    第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

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

    第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

    然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

    友情提示:在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。

    如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。

     |创建远程库

     |关联远程库(根据github该仓库中的提示)***为github帐号(其中origin可修改为其他) learngit为你的仓库地址

    $ git remote add origin git@github.com:***

    把本地库的所有内容推送到远程库上:

    $ git push -u origin master
    Counting objects: 20, done.
    Delta compression using up to 4 threads.
    Compressing objects: 100% (15/15), done.
    Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.
    Total 20 (delta 5), reused 0 (delta 0)
    remote: Resolving deltas: 100% (5/5), done.
    To github.com:michaelliao/learngit.git
     * [new branch]      master -> master
    Branch 'master' set up to track remote branch 'master' from 'origin'.
    View Code

    由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

    只要本地作了提交,就可以通过下面命令推送最新修改:

    $ git push origin master

     (该步骤除了第1,2步之外与其他步骤无关联)克隆:远程库已经准备好了,下一步是用命令git clone克隆一个本地库(****为github帐号):

    $ git clone git@github.com:****/gitskills.git
    Cloning into 'gitskills'...
    remote: Counting objects: 3, done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
    Receiving objects: 100% (3/3), done.

     删除已关联的名为origin的远程库:

    git remote rm origin

    多人协作的工作模式通常是这样:(分支推送到远程)

    1. 首先,可以试图用git push origin <branch-name>推送自己的修改;

    2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    3. 如果合并有冲突,则解决冲突,并在本地提交;

    4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!

    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>

    这就是多人协作的工作模式,一旦熟悉了,就非常简单。

    • 查看远程库信息,使用git remote -v

    • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

    • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

    • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    • 将回退后的版本强制推送到远程仓库 git push -f origin master
    • 如果git merge合并的时候出现refusing to merge unrelated histories的错误,原因是两个仓库不同而导致的,需要在后面加上--allow-unrelated-histories进行允许合并,即可解决

      如果还不能解决问题,就把本地的remote删除,重新git remote add添加远程仓库,再按上面的方法来,问题解决。

    git pull 强制覆盖本地的代码方式,下面是正确的方法:
    
    git fetch --all
    然后,你有两个选择:
    
    git reset --hard origin/master
    或者如果你在其他分支上:
    
    git reset --hard origin/<branch_name>
    说明:
    
    git fetch从远程下载最新的,而不尝试合并或rebase任何东西。
    
    然后git reset将主分支重置为您刚刚获取的内容。 --hard选项更改工作树中的所有文件以匹配origin/master中的文件。
  • 相关阅读:
    html页面中的转意字符
    bootstrap学习笔记3- navbar-header navbar-toggle 类 data-toggle和data-target
    DIV嵌套过程中的高度自适应问题
    <span class="icon-bar"></span> 不显示?
    CSS中定位的浮动float
    CSS 盒模型,块级元素和行内元素的区别和特性
    CSS padding
    CSS Position(定位)
    网络资料
    vue中 具名插槽+作用域插槽的混合使用
  • 原文地址:https://www.cnblogs.com/init-007/p/10887662.html
Copyright © 2011-2022 走看看