登陆 github
创建新的 repository
输入你的项目名称,如果没有冲突,就会显示对号✔️
上图如果选择 private,会需要提供银行账户。选择 Public 则免费。
因为我们是从一个本地已经存在的项目来创建 repository,所以,上面的设置全部选择默认。
在你新建的 repository 页面,我们安装已经存在项目来复制对应的代码:
终端执行上述代码后,出现如下错误
➜ 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
重新执行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 页面
选择侧边栏的 SSH and GPG keys
点击 New SSH key
增加 ssh key
在key
文本框内黏贴上剪切板的内容,在 title
里填入你的机器名称或者其他能说明的文字。最后点击add ssh key
增加。
回到本地终端,执行 push 操作
git push -u origin master
出现如下内容,说明 push 成功。
简单认识一下项目的 github repository 页面
1. Code 标签
当你没有代码提交的时候,这儿显示的是提交操作说明,如果你有代码提交后,下面2部分就会显示具体的项目结构。
2. 项目结构主体内容
包含文件、目录名称,提交、修改信息及修改时间。
3. 分支选择
如果你提交的项目包含分支,可以在此处进行选择。
4. 提交信息
此处提供提交相关信息,包括总共提交了几次,点进去有具体每次提交的信息,点击相应的 hash 值,会显示具体的修改信息。
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
连接测试,此时,你应该会看到成功信息。
恩,就简单记到这里吧,以后想到什么再补充。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。