1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 基于onedrive搭建简易的私有git“远程仓库”

基于onedrive搭建简易的私有git“远程仓库”

时间:2018-12-06 11:45:51

相关推荐

基于onedrive搭建简易的私有git“远程仓库”

在onedrive上搭建git"中央仓库"

参考和这么做的原因

这么做的原因:如果项目代码直接存放在onedrive上,会导致每次构建项目都会触发onedrive的同步工作,同步很多不必要的文件,所以考虑使用git的版本控制,在onedrive做仓库,并在本地建立仓库从onedrive clone

思路来源:有给 OneDrive 设置 .ignore 的方法吗? - V2EX #7

本地仓库搭建方法参考:How to create a git remote? - Stack Overflow

执行步骤

安装git在onedrive创建文件夹作为远程仓库地址:my-remote-repositorymy-remote-repository执行git裸仓库初始化命令:git init --bare在本地文件夹clonemy-remote-repository作为远程仓库:git clone file://E:\OneDrive\my-remote-repository

完成!

之后就可以在VSCode安装gitLens爽爽pull/push了

快捷化操作

编写powershell脚本(适用于win11)(需要先安装git)

需要先安装git请按照需要修改$oneDrivePath$repositoryPath[System.Environment]::GetFolderPath("Personal") + "\OneDrive"仅适用于未修改OneDrive同步位置的情况将上述代码保存为.ps1文件即可作为powershell脚本powershell脚本默认不能双击运行,需要右键使用 PoweShell 运行,或者右键文件夹在终端打开,然后输入./+脚本名再回车运行

1. 在onedrive创建空白远程仓库并克隆到本地

在目录 /my/local/dir 运行,输入folderName,会生成folderName存储库,克隆出 /my/local/dir/folderName文件夹

# 存储当前路径$localpath = $PWD.Path# OneDrive目录#$oneDrivePath = [System.Environment]::GetFolderPath("Personal") + "\OneDrive"$oneDrivePath = "E:\OneDrive"# 设定库目录$repositoryPath = "\Studio\Code\Cpp"echo 存储库路径为:$($oneDrivePath+$repositoryPath)# 输入文件夹名$folderName = Read-Host "-请输入文件夹名"# 在OneDrive目录下创建文件夹$remotepath = Join-Path -Path $($oneDrivePath+$repositoryPath) -ChildPath $folderName# 检查是否已经存在同名文件夹if (Test-Path $remotepath) {$overwrite = Read-Host "文件夹 $folderName 已存在于 OneDrive 目录下。是否覆盖文件夹?(y/n)"if ($overwrite -eq "n") {Write-Host "操作已取消。请重新运行脚本。"return}elseif ($overwrite -ne "y") {Write-Host "无效的输入。操作已取消。请重新运行脚本。"return}else {Remove-Item -Path $remotepath -Recurse -Force -Confirm:$false | Out-Null}}# 创建新的文件夹New-Item -ItemType Directory -Path $remotepath | Out-Null# 在$remotepath中调用git init --bareSet-Location $remotepathgit init --bare echo 远程存储库已生成:$remotepath# 切换回localpathSet-Location $localpath# 运行命令git clone file://${remotepath}git clone file://$remotepath# 输出结果Write-Host "操作完成!已在OneDrive目录下创建文件夹 $folderName,并成功设置远程仓库。"

2. 在onedrive创建同名空白远程仓库并推送本地内容

要求脚本所在文件夹已经使用git进行版本管理在目录 /my/local/dir/myproject运行,会生成名为myproject的远程仓库

# 存储当前路径$localpath = $PWD.Path# OneDrive目录#$oneDrivePath = [System.Environment]::GetFolderPath("Personal") + "\OneDrive"$oneDrivePath = "E:\OneDrive"# 设定库目录$repositoryPath = "\Studio\Code\Cpp"echo 存储库路径为 $($oneDrivePath+$repositoryPath)$currentFolder = Split-Path -Path $PWD.Path -Leaf# 在OneDrive目录下创建文件夹$remotepath = Join-Path -Path $($oneDrivePath+$repositoryPath) -ChildPath $currentFolder# 检查是否已经存在同名文件夹if (Test-Path $remotepath) {$overwrite = Read-Host "文件夹 $currentFolder 已存在于 OneDrive 目录下。是否覆盖文件夹?(y/n)"if ($overwrite -eq "n") {Write-Host "操作已取消。请重新运行脚本。"return}elseif ($overwrite -ne "y") {Write-Host "无效的输入。操作已取消。请重新运行脚本。"return}else {Remove-Item -Path $remotepath -Recurse -Force -Confirm:$false | Out-Null}}# 创建新的文件夹New-Item -ItemType Directory -Path $remotepath | Out-Null# 在$remotepath中调用git init --bareSet-Location $remotepathgit init --bare echo 远程存储库已生成:$remotepath# 切换回localpathSet-Location $localpath# 运行命令git remote add origin file://${remotepath}git remote add origin file://$remotepathgit push --set-upstream origin master# 输出结果Write-Host "操作完成!已在OneDrive目录下创建文件夹 $currentFolder,并成功设置远程仓库。"

相关解释

git init --bare

from chatgpt

git init --bare是一个用于创建一个裸仓库(bare repository)的Git命令。

在Git中,一个裸仓库是一个没有工作目录的仓库。它只包含Git版本控制系统所需的文件和元数据,没有实际项目文件。裸仓库通常用作共享和中央仓库,用于多人协作和代码共享。

具体来说,git init --bare命令在当前目录下创建一个新的裸仓库。这个仓库不包含项目文件,只包含用于版本控制的.git目录和相关的文件。

创建裸仓库后,其他开发人员可以通过克隆(clone)这个裸仓库来获取代码的副本,并向其中推送(push)自己的更改。裸仓库没有工作目录,因此不支持直接在其上进行修改和编辑文件,而是用作中央代码存储的中转站。

裸仓库的典型用途包括:

作为团队中央仓库:团队成员可以从裸仓库克隆代码,将自己的更改推送到裸仓库,并从中获取最新的更改。用于部署:在服务器上创建一个裸仓库,用于部署应用程序或网站的更新。开发人员可以将新的代码推送到裸仓库,然后服务器上的工作目录会自动更新。

总之,git init --bare是创建一个裸仓库的命令,用于共享代码、多人协作和中央存储。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。