GitHub

来自牛奶河Wiki
阿奔讨论 | 贡献2024年11月4日 (一) 11:20的版本 →‎Public Effect
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

GitHub Person

价格计划(免费版)

  • Free
    • The basics for individuals and organizations
  • Unlimited public/private repositories
    • Host open source projects in public GitHub repositories, accessible via web or command line. Public repositories are accessible to anyone at GitHub.com.
  • 2,000 automation minutes/month
    • Free for public repositories
    • Use execution minutes with GitHub Actions to automate your software development workflows. Write tasks and combine them to build, test, and deploy any code project on GitHub.
  • 500MB of Packages storage
    • Free for public repositories
    • Host your own software packages or use them as dependencies in other projects. Both private and public hosting available.
  • New Issues & Projects (beta)
    • Community support
    • 免费(个人)版支持无限个数的私有(或公有)仓库, 每月2000分钟的自动构建时长, 单仓库最大 500M.
    • 查看详情: https://github.com/pricing
    • CI/CD,全称:持续集成 (Continuous Integration) ,持续部署 (Continuous Deployment) ,是开发流程的自动化利器

Git

  • 当前机器中有 id_rsa
  • 远程 github 中已加载 id_rsa.public(settings -> Access -> SSH &GPG keys)

INIT

  • git init
    • 在当前目录下建立 .git 目录
    • clone 的目录在此目录下
git config --global user.name ldscfe
git config --global user.email [email protected]
git config --global color.ui true   # git status等命令自动着色
# git config --list
# 自动判断提交位置(clone多个库)
git config --global push.default matching

Repository

clone 远程仓库

# 需要在当前 repositories 下 settings/Deploy keys 中有相应 RSA publickey
# 客户端中 .ssh 中有相应的 id_rsa
git clone [email protected]:ldscfe/pangolin.git
.-OR-.
# 记录 token: Settings -> Developer Settings -> Personal access tokens -> tokens(classic)
git clone https://<Token Name>:<Token>@github.com/ldscfe/devudefj2.git

刷新

git pull

增加文件

git status           # 查看文件状态

git add $FN
git add .            # 所有

提交

# 需要 git add
git commit -m "comment content"
git push

去除文件&目录

# .gitignore
log/
target/
src/test/
.DS_Store
.gitignore

# 已 git add 的文件,在 .gitignore 中标识无效
git rm -f ${FN}      # 已 git add 的文件,删除后.gitignore 中标识有效

分支

# 分支之间切换、恢复文件、创建新分支等
git checkout <branch-name>           # 从当前分支切换到指定的分支 <branch-name>, 或主分支:master
git checkout -                       # 快速切换回前一个分支
git checkout -- <file>               # 将指定文件 <file> 恢复到最新的提交状态,丢弃所有未提交的更改
git checkout -b <new-branch-name>    # 创建一个新分支 <new-branch-name> 并切换
...
# 推送本地和远程都存在的同名分支
git config --global push.default matching

Creating remote repositories

git remote add ldscfe_cpp [email protected]:ldscfe/cpp.git
git remote add ldscfe_pangolin [email protected]:ldscfe/pangolin.git
git remote add ldscfe_udefpy3 [email protected]:ldscfe/udefpy3.git

#You can use the command git remote set-url to change a remote's URL.
git remote set-url <REMOTE_URL>

Public Effect

settings -> Danger Zone -> Change visibility

  • The code will be visible to everyone who can visit https://github.com
  • Anyone can fork your repository.
  • All push rulesets will be disabled.
  • Your changes will be published as activity.
  • Actions history and logs will be visible to everyone.

Example

DT=`date '+%Y/%m/%d %H:%M:%S'`
git add .
git commit -m "User-defined class libraries, $DT"
git push

之前最好用 git status 确认一下。

Error

RSA 证书无或错误

ERROR: Permission to XXX/XXX.git denied to deploy key
fatal: Could not read from remote repository.
-.OR.-
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
  1. repository 下 settings/Deploy keys 中有相应 RSA publickey
  2. 客户端中 .ssh 中有相应的 id_rsa(MacOS 使用 ssh-add)
  3. 不同的 repository 使用不同的 RSA publickey

分支冲突,本地版本陈旧

Automatic merge failed; fix conflicts and then commit the result.

丢弃本地分支内容

git reset --hard origin/master

首次推送

clone 后,首次 git push 出现:
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch.

未指定推送到哪个分支,一般发生在首次推送。

git push origin master

git init

fatal: Not a git repository (or any of the parent directories): .git

git remote add 时出现,原因:未 git init

repository 不存在或无权限

git pull 时出现:
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.

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