初级使用

Linux 环境下的基本配置

  1. 在 linux 中安装 git,我使用的是 manjaro,安装 Git 比较方便: sudo pacman -S git
  2. 进入GitHub创建属于你的账号
  3. 生成 SSH 并在 GitHub 设置:
  4. 生成 ssh key: ssh-keygen -t rsa -C "your_email@youremail.com", youremail 即是你的邮箱
  5. 打开 /home/.ssh/id_rsa_pub, 值得注意的.ssh是一个隐藏文件夹,打开文件后复制里面的秘钥(全部复制)
  6. 进入 GitHub 的网站,settings->SSH and GPG keys–>new SSH key,把秘钥添加进去,如果不进行这一步,将会出现
  1. The authenticity of host 'github.com (192.30.255.112)' can't be established.
  2. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
  3. Are you sure you want to continue connecting (yes/no)? yes
  4. Warning: Permanently added 'github.com,192.30.255.112' (RSA) to the list of known hosts.
  5. Permission denied (publickey).
  6. fatal: 无法读取远程仓库。
  7. 请确认您有正确的访问权限并且仓库存在。
  1. 测试 ssh key 是否成功,使用:ssh -T git@github.com,如果出现You’ve successfully authenticated, but GitHub does not provide shell access,这说明已经成功了,如果出现以下问题Agent admitted failure to sign using the key.Permission denied (publickey).,在命令行执行:ssh-add,就可以了
  2. 配置 Git 的基本信息,usrname 和 email,必须和注册的 GitHub 上的相同
  1. git config --global user.name "your name" //配置用户名
  2. git config --global user.email "your email" //配置email

本地上传项目到 GitHub

  1. 利用 cd 进入到要建立仓库的文件夹内
  2. git init:仓库初始化
  3. git status:查看仓库的状态
  4. git add xxx:添加文件到仓库,xxx 可以是文件名,git add .可以添加所有未添加的文件
  5. git commit:提交至仓库
  6. 将本地仓库添加至云端仓库
  7. GitHub先创建一个云端仓库
  8. git remote add origin git@github.com:××/××.git——××/××是你的账号名/仓库名,本地仓库名一定要和云端仓库名相同
  9. git push origin master——把本地master分支的最新修改推送至GitHub
  10. 上一步可能出现以下报错
  1. To github.com:LockSkyarn/SomeUsefulBooks.git
  2. ! [rejected] master -> master (fetch first)
  3. error: 推送一些引用到 'git@github.com:LockSkyarn/SomeUsefulBooks.git' 失败
  4. 提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
  5. 提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
  6. 提示:(如 'git pull ...')。
  7. 提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。

按照提示输入 git pull,出现

  1. warning: 没有共同的提交
  2. remote: Enumerating objects: 3, done.
  3. remote: Counting objects: 100% (3/3), done.
  4. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
  5. 展开对象中: 100% (3/3), 完成.
  6. 来自 github.com:LockSkyarn/SomeUsefulBooks
  7. * [新分支] master -> origin/master
  8. 当前分支没有跟踪信息。
  9. 请指定您要合并哪一个分支。
  10. 详见 git-pull(1)。
  11. git pull <远程> <分支>
  12. 如果您想要为此分支创建跟踪信息,您可以执行:
  13. git branch --set-upstream-to=origin/<分支> master

接着去执行git pull git@github.com:××/××.git master,如果出现报错

  1. 来自 github.com:LockSkyarn/SomeUsefulBooks
  2. * branch master -> FETCH_HEAD
  3. fatal: 拒绝合并无关的历史

就输入git pull git@github.com:××/××.git master --allow-unrelated-histories,成功则提示

  1. 来自 github.com:LockSkyarn/SomeUsefulBooks
  2. * branch master -> FETCH_HEAD
  3. Merge made by the 'recursive' strategy.
  4. README.md | 1 +
  5. 1 file changed, 1 insertion(+)
  6. create mode 100644 README.md

继续输入git push -u origin master
打开你的 GitHub 发现你的项目已经同步上去了

从 GitHub 克隆项目到本地

  1. GitHub 上的每一个仓库里都可以复制HTTPS clone url
  2. 到你要存放的目录下,使用:git clone http……,http……就是你拷贝的网址
  3. 如果本地的版本不是最新的,可以使用:git fetch origin
  4. 把更新的内容合并到本地的分支,可以使用:git merge origin/master
  5. 参考文章