初级使用
Linux 环境下的基本配置
- 在 linux 中安装 git,我使用的是 manjaro,安装 Git 比较方便:
sudo pacman -S git
- 进入GitHub创建属于你的账号
- 生成 SSH 并在 GitHub 设置:
- 生成 ssh key:
ssh-keygen -t rsa -C "your_email@youremail.com"
, youremail 即是你的邮箱 - 打开
/home/.ssh/id_rsa_pub
, 值得注意的.ssh是一个隐藏文件夹,打开文件后复制里面的秘钥(全部复制) - 进入 GitHub 的网站,settings->SSH and GPG keys–>new SSH key,把秘钥添加进去,如果不进行这一步,将会出现
The authenticity of host 'github.com (192.30.255.112)' 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.255.112' (RSA) to the list of known hosts.
Permission denied (publickey).
fatal: 无法读取远程仓库。
请确认您有正确的访问权限并且仓库存在。
- 测试 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
,就可以了 - 配置 Git 的基本信息,usrname 和 email,必须和注册的 GitHub 上的相同
git config --global user.name "your name" //配置用户名
git config --global user.email "your email" //配置email
本地上传项目到 GitHub
- 利用 cd 进入到要建立仓库的文件夹内
git init
:仓库初始化git status
:查看仓库的状态git add xxx
:添加文件到仓库,xxx 可以是文件名,git add .
可以添加所有未添加的文件git commit
:提交至仓库- 将本地仓库添加至云端仓库
- 在GitHub先创建一个云端仓库
git remote add origin git@github.com:××/××.git
——××/××是你的账号名/仓库名,本地仓库名一定要和云端仓库名相同git push origin master
——把本地master分支的最新修改推送至GitHub- 上一步可能出现以下报错
To github.com:LockSkyarn/SomeUsefulBooks.git
! [rejected] master -> master (fetch first)
error: 推送一些引用到 'git@github.com:LockSkyarn/SomeUsefulBooks.git' 失败
提示:更新被拒绝,因为远程仓库包含您本地尚不存在的提交。这通常是因为另外
提示:一个仓库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 'git pull ...')。
提示:详见 'git push --help' 中的 'Note about fast-forwards' 小节。
按照提示输入 git pull
,出现
warning: 没有共同的提交
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.
来自 github.com:LockSkyarn/SomeUsefulBooks
* [新分支] master -> origin/master
当前分支没有跟踪信息。
请指定您要合并哪一个分支。
详见 git-pull(1)。
git pull <远程> <分支>
如果您想要为此分支创建跟踪信息,您可以执行:
git branch --set-upstream-to=origin/<分支> master
接着去执行git pull git@github.com:××/××.git master
,如果出现报错
来自 github.com:LockSkyarn/SomeUsefulBooks
* branch master -> FETCH_HEAD
fatal: 拒绝合并无关的历史
就输入git pull git@github.com:××/××.git master --allow-unrelated-histories
,成功则提示
来自 github.com:LockSkyarn/SomeUsefulBooks
* branch master -> FETCH_HEAD
Merge made by the 'recursive' strategy.
README.md | 1 +
1 file changed, 1 insertion(+)
create mode 100644 README.md
继续输入git push -u origin master
打开你的 GitHub 发现你的项目已经同步上去了
从 GitHub 克隆项目到本地
- GitHub 上的每一个仓库里都可以复制
HTTPS clone url
- 到你要存放的目录下,使用:
git clone http……
,http……就是你拷贝的网址 - 如果本地的版本不是最新的,可以使用:
git fetch origin
- 把更新的内容合并到本地的分支,可以使用:
git merge origin/master
- 参考文章
- 使用Git管理代码
- Linux下Git和GitHub使用方法总结
- 学习 Git 推荐的一个可视化的趣味网站 Learn Git Branching