本地库和远程库的交互

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
# 推送文件进行测试

 

posted @ 2019-09-11 08:58  codedot  阅读(494)  评论(0编辑  收藏  举报