git版本控制与github等远程代码库

刚上手。

个人理解。整理思路,不一定对。

一,git

1,git的概念体系中,文件有三/四种“存在状态/区域”:本地区(工作区,workspace),暂存/驿站区(stage),仓库区(repository)——仓库区又可分本地(local)仓库与远程(remote)仓库。

将文件比喻为工厂生产的产品(工作区视为厂房,车间),这组概念就有点形象了。

2,使用git add *可以将文件从本地(厂房,车间)搬到驿站。git reset <file>从驿站搬回本地(本地的当前状态的原文件会被直接覆盖。如果没有存到仓库,就有点麻烦了。所以reset前记得先commit)。

3,git commit从驿站(或工作区)搬到本地仓库。上传时需加上(对批次的?)自定义的描述文字。同样(同名)的“产品”也会以不同“批次”作为区分。所以取回产品时也应标注其“批次”:git reset <commit>——根据规范,这里应使用系统生成的hash<?>码(的至少前7位,经测试,多取几位也无妨)……使用“5,git log与reflog”可查看相关描述文字与hash码等信息……

4,git diff可以比对工作区与驿站区产品的差别。(“保存”在本地的内容才算是“工作区的产品”。)

diff追加批次号(至少前7位),则比对指定批次产品。

5,git log:当前及之前批次的产品(的文字描述与hash码等信息 )。

git reflog:当前产品的批次记录。

比如如果从仓库区取回了很早批次的产品,则之后再log,该批次之后的产品(批次号)都不会显示。但在reflog中,则会显示所有当前产品用过的“批次号”。

6,git push,从本地仓库搬到远程仓库。

git fetch,从远程仓库搬到本地仓库。

git pull/clone,从远程仓库搬到厂房。

二,github等远程仓库

使用ssh钥匙“开门”“送货”。

准备工作:

1,本地安装,开启ssh服务

sshd(ssh server)是给别人提供ssh服务的,不用开。

ssh agent(代理人,施事者)是(代替我们)向(比如github那边的)ssh server发起ssh服务的。才是这次需要开户的服务。

2,ssh-keygen -t rsa -C "你的邮箱"

在本地生成一对“钥匙”与“锁”。比如id_rsa(钥匙)与id_rsa.pub(门锁)。

在远程仓库区开个仓库,在那边把门锁装上。登录github,Account Settings——>SSH Keys——>Add SSH Key,title随便填,复制id_rsa.pub中的字符,粘贴key区。

3,在本地做好本地配置。包括:

3.1,ssh配置(config文件,可以放在生成钥匙的地方),其内容大致包括:

a,(向代理人说明)去的哪家仓库:HostName github.com

b,带上哪把钥匙:IdentityFile ~/.ssh/id_rsa

3.2,git配置(config文件,可以放在“厂区”生成的.git文件夹中),

a,表明身份:github(或别的目标远程仓库服务站点中所使用的)邮箱,用户名。

[user]
    email=**@.com
    name=账户名。

b,标明所用仓库(貌似可以在发起push时再选择或创建。真正需要手动写进配置文件中的,只有上面的表明身份部分。)

[remote "origin"]
    url = https://github.com/……

4,一些其它问题。

比如被防火墙挡住了。

被防杀毒软件挡住了。

我就被火绒卡了几个小时,四舍五入就是一天。

生生逼得把上述所有流程都摸索了一遍。

一直报:connect to host github.com port 22: Operation not permitted

最后查看火绒安全日志,才发现问题所在。

联网控制允许联网,程序放白名单,都无法解除它对ssh联网的阻挡。

最后临时把它关了,才算通过了测试:在git bash下输入

$ ssh -T git@github.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值