# Git

# 远程仓库

  1. 本地创建了一个 Git 仓库后,又想在 GitHub 创建一个 Git 仓库,并且让这两个仓库进行远程同步,这样,GitHub 上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。目前,
  2. 在 GitHub 上的这个 learngit 仓库还是空的,GitHub 告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到 GitHub 仓库。现在,我们根据 GitHub 的提示,在本地的 learngit 仓库下运行命令:
    git remote add origin git@github.com:michaelliao/learngit.git
    添加后,远程库的名字就是 origin,这是 Git 默认的叫法,也可以改成别的,但是 origin 这个名字一看就知道是远程库。
  3. 下一步,就可以把本地库的所有内容推送到远程库上:
    $ git push -u origin master把本地库的内容推送到远程,用 git push 命令,实际上是把当前分支 master 推送到远程。由于远程库是空的,我们第一次推送 master 分支时,加上了 -u 参数,Git 不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令。
    从现在起,只要本地作了提交,就可以通过命令: git push origin master
    把本地 master 分支的最新修改推送至 GitHub,现在,你就拥有了真正的分布式版本库!
  4. SSH 警告 当你第一次使用 Git 的 clone 或者 push 命令连接 GitHub 时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)

这是因为 Git 使用 SSH 连接,而 SSH 连接在第一次验证 GitHub 服务器的 Key 时,需要你确认 GitHub 的 Key 的指纹信息是否真的来自 GitHub 的服务器,输入 yes 回车即可。

Git 会输出一个警告,告诉你已经把 GitHub 的 Key 添加到本机的一个信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts. 这个警告只会出现一次,后面的操作就不会有任何警告了。 如果你实在担心有人冒充 GitHub 服务器,输入 yes 前可以对照 GitHub 的 RSA Key 的指纹信息是否与 SSH 连接给出的一致。

小结
要关联一个远程库,使用命令:
git remote add origin git@server-name:path/repo-name.git
关联后,使用命令:
git push -u origin master 第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令:
git push origin master 推送最新修改
https://www.liaoxuefeng.com/wiki/896043488029600/898732864121440(参照廖雪峰老师)

# 创建与合并分支命令

  1. 查看分支:git branch

  2. 创建分支:git branch <name>

  3. 切换分支:git checkout <name>或者git switch <name>

  4. 创建 + 切换分支:git checkout -b <name>或者git switch -c <name>

  5. 合并某分支到当前分支:git merge <name>

  6. 删除分支:git branch -d <name>

# git sshkey

  1. 生成新的 sshkey ssh-keygen -t rsa -b 4096 -C "55343581@qq.com"
  2. 如果不使用密码连输按 3 次回车
// 保存位置
> Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
// 输入密码
> Enter passphrase (empty for no passphrase): [Type a passphrase]
// 重复密码
> Enter same passphrase again: [Type passphrase again]

# 上传项目的代码

  1. 在命令行上创建新存储库
echo "# newVue" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:ASD-WEB/newVue.git
git push -u origin master

  1. 从命令行推导出现有的存储库
git remote add origin git@github.com:ASD-WEB/newVue.git
git push -u origin master

# GitHub Actions

GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出。

  1. GitHub Actions 是什么
    大家知道,持续集成由很多操作组成,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。GitHub 把这些操作就称为 actions。 很多操作在不同项目里面是类似的,完全可以共享。GitHub 注意到了这一点,想出了一个很妙的点子,允许开发者把每个操作写成独立的脚本文件,存放到代码仓库,使得其他开发者可以引用。 如果你需要某个 action,不必自己写复杂的脚本,直接引用他人写好的 action 即可,整个持续集成过程,就变成了一个 actions 的组合。这就是 GitHub Actions 最特别的地方。
  2. GitHub 做了一个官方市场,可以搜索到他人提交的 actions。另外,还有一个 awesome actions 的仓库,也可以找到不少 action。