一、git clone

1. http协议拉取代码 (使用指定token认证,适合脚本使用)

# git 认证token
export git_token=6xUsSFYE_yud9SD4qy6d
# 仓库地址
export repo_path=mq.code.demo.org/IAM/keystone


# 拉取仓库代码,仓库默认分支
git clone https://oauth2:${git_token}@${repo_path}.git  

# 拉取仓库代码,指定分支 -b 参数指定 xxx 分支
git clone -b xxx https://oauth2:${git_token}@${repo_path}.git 

# 浅克隆(shallow clone)仓库 --depth=1 表示只克隆远程分支的最新提交。这可以减少下载的历史记录,从而加快克隆速度,节省存储空间,特别是在大型仓库中非常有用。(只适合拉取代码)
git clone --depth=1 -b xxx https://oauth2:${git_token}@${repo_path}.git

# 注意请求地址是以 .git 结尾,否则会报如下错误
git clone https://oauth2:${git_token}@${repo_path}

Cloning into 'keystone'...
error: RPC failed; result=22, HTTP code = 404
fatal: The remote end hung up unexpectedly

2. ssh 协议拉取代码 (使用本地git配置文件中的秘钥对认证,适合本地使用)

# 仓库地址
export repo_path=mq.code.demo.org/IAM/keystone

# 拉取仓库代码,仓库默认分支
git clone git@${repo_path}.git

# 拉取仓库代码,指定分支 -b 参数指定 xxx 分支
git clone -b xxx git@${repo_path}.git

# 浅克隆(shallow clone)仓库 --depth=1 表示只克隆远程分支的最新提交。这可以减少下载的历史记录,从而加快克隆速度,节省存储空间,特别是在大型仓库中非常有用。(只适合拉取代码)
git clone --depth=1 -b xxx git@${repo_path}.git

二、 git rebase 合并提交历史

使用 git rebase 来合并多个提交记录是一个常见的任务,这通常称为“压缩提交”(squash)。这可以帮助您保持 Git 历史记录的整洁性,特别是在功能开发完成后将多个小的提交合并为一个更有意义的提交。

# 合并最近的三个提交
git rebase -i HEAD~3

# 合并commit id 为f302b0b2之后的提交
git rebase -i f302b0b2 

# git reabse 之后,如果之前的代码已经上库, git push 推送代码上库时需要添加参数 -f 强制推送(建议使用个人分支)
 

三、 其他操作

# git 认证token
export git_token=6xUsSFYE_yud9SD4qy6d
# 仓库信息
export branch=feature-test
export repo_path=mq.code.demo.org/IAM/keystone
export file_path=tests/unittest_python.yaml
export local_file=unittest_python.yaml

# 列出远程仓库中的引用(refs),例如分支或标签以及最新commit id 
git ls-remote --heads http://oauth2:${git_token}@${repo_path}

# 下载仓库指定分支指定文件至本地指定文件
curl http://${repo_path}/raw/${branch}/${file_path}?private_token=${git_token} -o $local_file

# 获取指定仓库指定分支的文件树至output.json 
curl "http://${repo_path}/files/${branch}?format=json&private_token=${git_token}" -o output.json 


Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐