本地库和远程库的交互
1. 创建远程库
2. 在本地创建远程库地址别名
注意:以下操作必须是在一个本地仓库目录中操作
(1) git remote -v 查看当前所有远程地址别名
(2) git remote add [别名] [远程地址]
3. 推送
git push [别名] [分支名]
出现以上错误,是因为目录中没有文件,空目录是不能提交上去的。
我们在目录中添加一个文件,使用git add加入到暂存区,git commit提交到本地库中。
根据提示设置签名(设置全局签名吧,否则设置项目级别的前面,后面再创建本地仓库,又得重新设置),设置完成后,再git commit,最后再git push。
执行git push 会弹出对话框,要求输入GitHub的用户名和密码进行登录。
这是因为github上的远程库与本地库版本不一致导致的。
我们根据提示先pull,再push。
git pull origin master
git push origin master
若git pull 失败 ,提示:fatal: refusing to merge unrelated histories,这是因为两个根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。有两种解决方法:
第一种:从远端库拉下来代码 , 本地要加入的代码放到远端库,然后提交上去,这相当于是一种更新;
第二种:强制拉取,git pull origin master --allow-unrelated-histories
总结:创建远程仓库,本地仓库初始化后,使用git pull拉取,保持本地库与远程库版本一致。
注意:
我们刚才输入GitHub的用户名和密码会保存在Windows系统的凭据管理器中,那如果我们要切换GitHub账户怎么办呢?
控制面板 --> 用户帐户 --> 凭据管理器,点击“管理Windows凭据”,可以看到我们的GitHub账号,删除即可,下次再操作时会提示我们输入。
4. 克隆
git clone [远程地址]
克隆操作为我们做了这些事情:
(1) 完整的把远程库下载到本地
(2) 创建远程库地址别名:origin
(3) 初始化本地库
5. 团队成员邀请
把邀请链接发送给受邀请的账号,被邀请的账号登录自己的 GitHub 账号,用浏览器访问邀请链接。
6. 拉取
pull=fetch+merge
git fetch [远程库地址别名] [远程分支名]
git merge [远程库地址别名/远程分支名]
git pull [远程库地址别名] [远程分支名]
7. 解决冲突
如果不是基于GitHub 远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
8. 跨团队协作
这里有两个用户:slinhw(其他团队)、weicookie(我们团队)
(1) 以weicookie登录,复制仓库地址
(2) 以slinhw登录,访问我们复制的仓库地址(可以用不同的浏览器模拟,这样就不用频繁退出登录了)
(3) 创建属于slinhw的本地仓库,修改,然后推送到远程
注:别推送到其他的仓库(删除系统保存的凭据,执行命令后会弹出登录框,输入GitHub的用户名和密码)
(4) Pull Request
这里实际就是一个对话的过程了,等待weicookie的操作。
(4) 对话
(5) 审核代码
(6) 合并代码
9. SSH登录
缺陷:只能为一个账号设置
# 进入当前用户的家目录 cd ~ # 删除.ssh 目录(以前没有创建过,可以跳过) rm -rvf .ssh # 运行命令生成.ssh 密钥目录 # 注意:这里-C 这个参数是大写的 C # 执行完后,会有一些要确认的内容,直接回车,表示用默认值 ssh-keygen -t rsa -C 993884811@qq.com # 进入.ssh 目录查看文件列表 cd .ssh ls -lf # 查看 id_rsa.pub 文件内容 cat id_rsa.pub # 复制 id_rsa.pub 文件内容,登录 GitHub,点击用户头像→Settings→SSH and GPG keys # New SSH Key # 输入复制的密钥信息 # 回到 Git bash 创建远程地址别名 git remote add origin_ssh git@github.com:weicookie/BaseTest.git # 推送文件进行测试