登陆 github

创建新的 repository

clipboard.png

输入你的项目名称,如果没有冲突,就会显示对号✔️
clipboard.png

上图如果选择 private,会需要提供银行账户。选择 Public 则免费。

因为我们是从一个本地已经存在的项目来创建 repository,所以,上面的设置全部选择默认。

在你新建的 repository 页面,我们安装已经存在项目来复制对应的代码:

clipboard.png

终端执行上述代码后,出现如下错误

➜  laravel_phonebook git:(master) git remote add origin git@github.com:ingood/phonebook.git
➜  laravel_phonebook git:(master) git push -u origin master
The authenticity of host 'github.com (192.30.253.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
##
Warning: Permanently added 'github.com,192.30.253.113' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

消除 hosts 警告

第一条警告要求我们在 hosts 里增加永久域名解析。

sudo vi /etc/hosts

clipboard.png

重新执行git push -u origin master,警告消除,但第二条错误仍在。

解决 Permission denied (publickey) 错误

上网搜了一下, 原因是'You've probably not added a public key to your SSH keys.'
解决方法如下:

用下面的命令生成public key

$ ssh-keygen -t rsa

复制 public key (id_rsa.pub) 到剪切板

pbcopy < ~/.ssh/id_rsa.pub

进入账户 setting 页面

clipboard.png

选择侧边栏的 SSH and GPG keys

clipboard.png

点击 New SSH key

clipboard.png

增加 ssh key

key文本框内黏贴上剪切板的内容,在 title 里填入你的机器名称或者其他能说明的文字。最后点击add ssh key增加。
clipboard.png

回到本地终端,执行 push 操作

git push -u origin master

出现如下内容,说明 push 成功。
clipboard.png

简单认识一下项目的 github repository 页面

clipboard.png

1. Code 标签

当你没有代码提交的时候,这儿显示的是提交操作说明,如果你有代码提交后,下面2部分就会显示具体的项目结构。

2. 项目结构主体内容

包含文件、目录名称,提交、修改信息及修改时间。

3. 分支选择

如果你提交的项目包含分支,可以在此处进行选择。

4. 提交信息

此处提供提交相关信息,包括总共提交了几次,点进去有具体每次提交的信息,点击相应的 hash 值,会显示具体的修改信息。

clipboard.png

5. clone 和下载按钮

这个按钮可以提供 clone 时需要的 git url,同时也提供 zip 压缩的代码打包下载。

按钮下方有一段信息为最新提交的代码 hash,点击进去就可看到最新修改。

提交代码更新到 github

  • 编辑代码

  • git add 相应修改的文档名称

  • git commit -m ”相关修改信息“

  • git push

以上 4 步就完成一次代码更新提交流程。

clone 一个项目到本地

git clone 支持多种协议,github 上提供了 ssh 和 https 两种模式的链接,其实应该也支持 git 等协议。

1. 只读克隆

一般 https 协议模式的 clone,为只读克隆,不需要用户认证。如下:

git clone https://github.com/username/projectname.git

2. 可编辑克隆

一般 ssh 、git 协议的克隆都为本地可编辑克隆,需要用户认证。如下:

git clone git@github.com:username/projectname.git

3. laravel 项目一般需要更新依赖库

因为 vendor 目录比较大,一般都会在 .gitignore 里面忽略掉,所以,我们要执行 composer update 重新下载这些依赖库。

composer update
    

更新一个项目到本地

1. 查看远程仓库
git remote -v                                

origin  git@github.com:ingood/phonebook.git (fetch)
origin  git@github.com:ingood/phonebook.git (push)
2. 从远程获取最新版本到本地
git fetch origin master:temp 

这句命令的意思是:从远程的origin仓库的master分支下载到本地并新建一个分支temp,如果不要分支,去掉:temp

使用git pull也可以拉取远程分支的代码,相当于git fetch + merge,但相对来说使用git fetch更好理解,更安全,git pull多人写作的话不够安全。

3. 比较本地的仓库和远程参考的区别
git log -p master origin/master

或者

git diff origin/master
4. 合并已获取的远程仓库到本地
git merge origin/master

如果出现以下信息:

error: Your local changes to the following files would be overwritten by merge:
        .idea/workspace.xml
Please, commit your changes or stash them before you can merge.
Aborting

请先 git stash 后,再执行上面的合并命令。

win 下的 git 配置

先生成 rsa key

ssh-keygen -t rsa -C "xxxxxx@yy.com"  #建议填写自己真实有效的邮箱地址

成功会提示 key 的保存信息,如

Your public key has been saved in /c/Users/Ade/.ssh/id_rsa.pub

尽量不要改变 key 的路径,因为 ssh 会读取默认的配置路径,如果你调整了,还要改配置才能有效找到 key。

添加ssh key 到 GItHub

该步骤和 Mac 上面相同,不赘述。

测试ssh keys是否设置成功。

$ ssh -T git@github.com

如果出现下面提示表示成功

 You've successfully authenticated, but GitHub does not provide shell access.
 

访问时出现:port 22: Connection refused 解决方法

这是因为 github 的ssh默认 22 端口没开,而是用 443 端口
在~/.ssh/下编辑config文件(默认好像没这个文件)
添加:

Host github.com
User YourEmail
Port 443
Hostname ssh.github.com

再用 ssh -T git@github.com 连接测试,此时,你应该会看到成功信息。


恩,就简单记到这里吧,以后想到什么再补充。


ingood
708 声望80 粉丝

Keep it simple & stupid.