使用gitee|github在家和公司协作写代码(配合vscode图形化界面)--转发

在公司没完成的工作,回家继续。由于涉及到两台电脑,需要对每台电脑的操作进行单独阐述。假设两台电脑分别为电脑A,电脑B。

gitee代码托管

1. 电脑AB均需进行的操作

1、软件安装

安装vscode软件(大部分IDE都支持,如pycharm)。安装git软件,下载之后建议一直按next,默认安装即可。

2、gitee注册

进入gitee官网注册gitee账号,并新建仓库,执行参照百度。

3、连接gitee

采用SSH方式连接gitee(SSH方式只需登录一次,方便安全):

①生成sshkey,在桌面点击右键,单击Git Bash Here,输入命令,然后按3次回车:

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

②查看生成的sshkey,输入以下命令,并将命令下方的sshkey复制到剪贴板:

cat ~/.ssh/id_rsa.pub

③打开你的gitee,点击页面右上角你头像下方的设置,在左侧竖栏找到SSH公匙点开,按照截图操作:
在这里插入图片描述

④在Git bash中输入命令,如果有弹出询问(yes/no),输入yes,提示successfully相关字样证明成功。(successfully后方提示有but字样不管,输入时将以下命令的#换成@符号)

ssh -T git@gitee.com

4、其他的全局配置

git config --global user.name "你的名称"
git config --global user.email "你的邮箱地址"

2. 电脑A接下来的操作

1、在电脑建立项目文件夹,假设文件夹名称为proj,在proj中右键,点击Git bash Here,输入git init命令,把proj目录变成Git可以管理的本地仓库。

2、把proj本地仓库与云端Gitee仓库关联,执行如下命令(你的仓库地址来源见截图,涉及弹出窗口让填写账号和密码的情况,请填写你的gitee账号密码):

git remote add origin 你的仓库地址

在这里插入图片描述

3、打开vscode,用vscode打开proj文件夹,在目录下进行日常编程工作,完成后保存。此时会在如图所示位置显示你的更改。

当前修改显示

按照如下截图操作(三部曲:暂存—提交—推送),将你的项目上传到gitee:

第一步:暂存修改
第二步:提交修改
内部

3. 电脑B接下来的操作:

1、在任意工作空间(你要写代码的地方)右键,Git Bash Here,输入以下命令,gitee项目即克隆复制到电脑B上来了。(有可能弹窗要输入gitee的账号密码)

git clone <项目地址> //“项目地址”即前面的“你的仓库地址”

2、进入克隆过来的项目文件夹,执行git init,同样把项目变成Git可以管理的本地仓库。然后执行“02电脑A接下来的操作”章节的2操作,也与gitee关联。

3、在电脑B编写代码,保存,同上执行暂存——提交——推送,从而将更改更新到gitee。

之后,每次即将换电脑工作前在当前电脑执行暂存——提交——推送操作,保证gitee项目状态最新。换电脑了先执行pull(拉取),将gitee更新同步到新电脑,再在电脑操作,操作完即将换电脑前再执行暂存——提交——推送操作。

在GIt bash命令行中的操作:
演示本地推送到gitee仓库的git命令
 1. 登录gitee账号,新建一个仓库(强烈建议远程仓库和本地仓库同名),创建完成后会生成了远程仓库地址
2.进入本地项目的文件目录,使用如下命令
2.1. git init 将本地项目初始化为一个本地仓库
2.2. git add . 将本地项目的所有文件和文件夹添加到本地仓库的暂存区
2.3. git commit -m ‘初始化’ 提交本地所有文件到暂存区
2.4. git remote add origin https://gitee.com/xxxx/xxxx.git 添加远程仓库关联
2.5. git push -u origin master 推送代码到远程仓库的master分支

拉取操作

如何只克隆部分代码?

一、需求

根据整体规划需求,多个模块的源码共存在一个仓库中。在一些场景执行中,需要考虑执行效率,仅关注部分路径的代码。即仅需获取部分路径的文件。

二、解决方案

利用Sparse Checkout模式。官方信息描述如下:

Sparse checkout
“Sparse checkout” allows to sparsely populate working directory. It uses skip-worktree bit (see git-update-index(1)) to tell Git whether a file on working directory is worth looking at.

“git read-tree” and other merge-based commands (“git merge”, “git checkout”…) can help maintaining skip-worktree bitmap and working directory update. $GIT_DIR/info/sparse-checkout is used to define the skip-worktree reference bitmap. When “git read-tree” needs to update working directory, it will reset skip-worktree bit in index based on this file, which uses the same syntax as .gitignore files. If an entry matches a pattern in this file, skip-worktree will be set on that entry. Otherwise, skip-worktree will be unset.

Then it compares the new skip-worktree value with the previous one. If skip-worktree turns from unset to set, it will add the corresponding file back. If it turns from set to unset, that file will be removed.

While $GIT_DIR/info/sparse-checkout is usually used to specify what files are in. You can also specify what files are not in, using negate patterns.

三、基本操作过程

  1. 准备
$mkdir code_dir
$cd code_dir
$git init
$git remote add -f origin <url>
  1. 启用sparsecheckout模式
$git config core.sparsecheckout true
  1. 设置排除的路径
    编辑 .git/info/sparse-checkout
$echo want_dir/* >> .git/info/sparse-checkout
  1. 拉取代码
$git pull origin master

四、如何设置sparsecheckout文件

子目录的匹配

如果目录名称前带斜杠,如/docs/,将只匹配项目根目录下的docs目录
如果目录名称前不带斜杠,如docs/,其他目录下如果也有这个名称的目录,如test/docs/也能被匹配。
如果写了多级目录,如docs/05/,则不管前面是否带有斜杠,都只匹配项目根目录下的目录,如test/docs/05/不能被匹配。

通配符 “*“ (星号)

支持通配符 “*“,如可以写成以下格式:

docs/
index.

*.gif

排除项 “!” (感叹号)

支持排除项 “!”,如只想排除排除项目下的 “docs” 目录,可以按如下格式写:

/*
!/docs/

五、如何关闭sparsecheckout模式

将core.sparsecheckout设为false
修改 .git/info/sparse-checkout 文件,用一个”*“号替代其中的内容
执行 checkout 或 read-tree 命令

六、注意事项

如果排除是临时性的,要及时清除相关设置,否则就是一个隐患,即导致环境不可重入。
仅限 Git 1.7以上版本
参考
https://blog.csdn.net/u022812849/article/details/53025248
http://schacon.github.io/git/git-read-tree.html#_sparse_checkout
https://zhgcao.github.io/2016/05/11/git-sparse-checkout/

转载于Git如何只克隆部分文件/代码

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值