mac下github和sourcetree使用小记

1.mac下多个ssh key的生成和配置

  1. 什么是ssh协议?

    Using the SSH protocol, you can connect and authenticate to remote servers and services. With SSH keys, you can connect to GitHub without supplying your username or password at each visit.

    这是github的解释,也就是说使用ssh key可以避免每次提交和拉去别人代码都输入密码。

    ssh key采用公钥和私钥配对的形式来实现免密码,具体实现是将公钥的key放到类似github或gitlab等网站上,将私钥存储在自己的电脑上,并配置进ssh-agent中。ssh-agent可以为一台电脑配置多个ssh key,例如为github账号和gitlab账号分别配置一个key,也可以为github网站配置不同用户的key。

  2. 生成和配置多个ssh key

    关于生成和配置ssh各个网站都有详细的教程,例如github网站的入口在个人-settings-SSH and GPG keys中,github ssh key配置帮助。按照教程步骤相信配置单个ssh key很容易实现,在这里主要说明一下多个ssh key的情况。

    生成ssh key的时候有三个回车要注意一下,可以指定生成位置

    第一个回车时候可以指定位置后再按回车可以生成到指定位置,否则会生成到默认的提示位置。

    Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
    

    第二个第三个回车用于输入密码和确认密码,通常不设置密码。

    在终端执行如下命令:

    vi ~/.ssh/config
    

    参考如下文件配置:

    #github的key1
    
    Host github1
    HostName github.com
    AddKeysToAgent yes
    UseKeychain yes
    #此处是开启git的ssh翻墙代理
    #ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:1086 %h %p
    IdentityFile /Users/mac02/Desktop/id_rsa
    
    #github的key2
    Host github2
    HostName github.com
    UseKeychain yes
    IdentityFile /Users/mac02/Desktop/id_rsa2
    #gitlab的key
    Host gitlab.com
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile /Users/mac02/.ssh/id_rsa
    

2.shadowsocks加速git clone命令以及sourcetree 克隆

在实际使用中发现sourcetree克隆别人的项目太慢了,使用命令行也是很慢,速度只有50-60kb/s,对于上百兆的项目简直是噩梦。网上搜索了各种教程,然并卵,后来尝试了影梭翻墙的加速,成功加速,记录一下步骤。

注意:加速的前提是你的影梭软件可以正常的翻墙,此处未展开说明影梭翻墙步骤

1.在shadowsocks"高级设置"菜单,查看影梭的本地socks5的监听地址和端口号

mac下github和sourcetree使用小记_第1张图片
影梭高级设置

2.将影梭的本地socks5监听ip地址和端口作为git ssh代理

vi ~/.ssh/config

在需要开启代理的ssh key配置项上添加一行,记得改成你的影梭的ip和端口号。

ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:1086 %h %p

例如:

#github的key1
Host github1
HostName github.com
AddKeysToAgent yes
UseKeychain yes
#此处是开启git的ssh翻墙代理
ProxyCommand /usr/bin/nc -X 5 -x 127.0.0.1:1086 %h %p
IdentityFile /Users/mac02/Desktop/id_rsa

如果不需要代理,行前加上#号注释掉该行即可。

sourcetree默认用内置的git,这会导致我们的代理配置对sourcetree没有效果,只对命令行git有效。解决办法很简单,就是在sourcetree的偏好设置的git菜单中将git切换为系统git即可。

mac下github和sourcetree使用小记_第2张图片
sourcetree改为系统你那个git

3.使用pull request完善他人项目和同步fork的项目

fork操作:

步骤很简单,就是在别人的项目上点击fork,作用是将别人的repository搞到成自己的仓库,但是默认不会被github搜索到,如果想被搜索到需要star数量大于原始仓库,并且制定搜索参数。下文参考自github help。

Code in forks is only searchable if the fork has more stars than the parent repository. Forks with fewer stars than the parent repository are not indexed for code search. To include forks with more stars than their parent in the search results, you will need to add fork:true or fork:only to your query. For more information, see "Searching in forks."

mac下github和sourcetree使用小记_第3张图片
fork操作

pull request操作

1.什么是pull request?

就是通过pull request提交你的分支上的变化,并且在合并入目标分支前可以和其他人一起讨论和回顾代码变更。

Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits before your changes are merged into the base branch.

2.使用pull request

Create a pull request to propose and collaborate on changes to a repository. These changes are proposed in a branch, which ensures that the master branch only contains finished and approved work.

Pull requests can only be opened if there are differences between your branch and the upstream branch. You can specify which branch you'd like to merge your changes into when you create your pull request.

If you don't have write access to the repository where you'd like to create a pull request, you must create a fork, or copy, of the repository first. For more information, see "Creating a pull request from a fork" and "About forks."

我理解的pull request(拉取请求)主要是跨仓库(fork的仓库和源仓库)分支的合并操作,pull request只能在两个分支存在差异的时候才能创建。pull request可以跨fork仓库,但不是必须跨仓库,不跨仓库也是可以的,默认就是不跨forks。

github关于pull request的帮助

pull request在打开的时候base代表将要合并的目的仓库,而compare代表打算合并入的仓库,base仓库可以是自己fork的仓库也可以是源仓库。在base是自己的仓库时可以为自己fork的仓库拉取最新的源仓库同步,在base是他人源仓库的时候可以将自己的分支申请合并入他人的源仓库。

mac下github和sourcetree使用小记_第4张图片
new pull request操作菜单
mac下github和sourcetree使用小记_第5张图片
存在差异的跨forks pull request可以激活

参考网站:https://help.github.com

你可能感兴趣的:(mac下github和sourcetree使用小记)