Git推送本地仓库至阿里云仓库
Git推送本地仓库至阿里云仓库
1.安装Git
参考Git安装详解
2.生成 SSH 密钥
基于RSA算法SSH 密钥
1.管理员权限运行Git Bash
2.输入生成密钥指令点击回车,选择 SSH 密钥生成路径。
$ ssh-keygen -t rsa -C "2267521563@qq.com"
3.以 RSA算法为例,直接按回车保存默认路径c:\Users\Dexter\.ssh\,也可自定义路径;
windows自定义路径下要进行路径转换 /d/DataBase/Git/.ssh/aliyun_rsa,确保有文件夹D:\DataBase\Git\.ssh
Dexter@LAPTOP-MKN50DTQ MINGW64 /d/DataBase/Git/.ssh $ ssh-keygen -t rsa -C "2267521563@qq.com" Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Dexter/.ssh/id_rsa): /d/DataBase/Git/.ssh/aliyun_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /d/DataBase/Git/.ssh/aliyun_rsa Your public key has been saved in /d/DataBase/Git/.ssh/aliyun_rsa.pub The key fingerprint is: SHA256:wOoDxRDh31238zGxa443UPuqNti25rLvYwqewfyA 2267521563@qq.com The key's randomart image is: +---[RSA 3072]----+ |+o*=. | | @ +.. | |o % + E . . | | + * o o = | | o . . S * | | o o o o | | o +. | | + ++* | | ..B*B++ | +----[SHA256]-----+
默认路径
[默认]密钥生成路径为:c:\Users\Dexter\.ssh\id_rsa
[默认]公钥生成路径为:c:\Users\Dexter\.ssh\id_rsa.pub
自定义路径
[自定义]密钥生成路径为:D:\DataBase\Git\.ssh\aliyun_rsa
[自定义]公钥生成路径为:D:\DataBase\Git\.ssh\aliyun_rsa.pub
4.输入指令,赋值公钥到剪切板
cat /d/DataBase/Git/.ssh/aliyun_rsa.pub | clip
注:如果密钥是默认生成路径就不用管了,直接跳转阿里云工作台添加SSH公钥,如果自定义路径的话继续以下步骤。
5.定位到/c/Users/Dexter/.ssh/路径,新建或者修改config文件;
#aliyun $ cd /c/Users/Dexter/.ssh/ $ touch config $ vi config
6.修改config文件追加以下内容,意思是访问codeup.aliyun.com时调用我们自定义路径下的公钥。
Host codeup.aliyun.com HostName codeup.aliyun.com PreferredAuthentications publickey IdentityFile /d/DataBase/Git/.ssh/aliyun_rsa
3.添加 SSH 公钥,复制仓库路径
1.登录阿里云工作台,打开个人设置,添加 SSH 公钥
2.回到阿里云项目中,点击克隆,复制SSH路由
4.计算机本地Clone项目
1.打开计算机本地路径,运行Git Bash
2.输入git init初始化 git 仓库,创建新项目时使用的第一个命令,此命令将创建一个空白的新的存储库,然后我们可以将源代码存储在此存储库中。
## 初始化 Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor $ git init
3.设置安全路径,设置转换字符串
## 设置当前路径安全路径 Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor $ git config --global --add safe.directory "*"; #提交时转换为LF,检出时转换为CRLF Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor $ git config --global core.autocrlf true
- 输入git add .将所有修改过的文件和新文件添加到暂存区
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git add .
5.输入git commit 会将更改添加到本地存储库。
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git commit -m "first commit"
6.输入git remote将本地存储库连接到远程。
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git remote add origin git@codeup.aliyun.com:dexter/PCMonitor/PCMonitor.git
7.输入git pull同步远程仓库文件至本地
$ git pull origin master --allow-unrelated-histories
8.输入git push -u origin推送本地仓库内容至远程仓库
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git push -u origin
6.常见问题
1.fatal: detected dubious ownership
解决办法:git config --global --add safe.directory "*",参考链接
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor $ git add . fatal: detected dubious ownership in repository at 'E:/WorkSpace/CSharpWork/PCMonitor' 'E:/WorkSpace/CSharpWork/PCMonitor' is owned by: BUILTIN/Administrators (S-1-5-32-544) but the current user is: LAPTOP-MKN50DTQ/Dexter (S-1-5-21-3087508804-2382978303-3275827262-1001) To add an exception for this directory, call: git config --global --add safe.directory E:/WorkSpace/CSharpWork/PCMonitor Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor $ git config --global --add safe.directory "*";
2.warning: LF will be replaced by CRLF the next time Git touches it
解决办法:git config --global core.autocrlf true,参考链接
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git add . warning: in the working copy of 'FrmDefault.cs', LF will be replaced by CRLF the next time Git touches it warning: in the working copy of 'FrmLoading.Designer.cs', LF will be replaced by CRLF the next time Git touches it
3.error: failed to push some refs to ‘codeup.aliyun.com:xxx.git’
解决办法:git pull origin master --allow-unrelated-histories ,参考链接
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git push -u origin master Enter passphrase for key '/d/DataBase/Git/.ssh/aliyun_rsa': To codeup.aliyun.com:dexter/PCMonitor/PCMonitor.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'codeup.aliyun.com:dexter/PCMonitor/PCMonitor.git' hint: Updates were rejected because the remote contains work that you do not hint: have locally. This is usually caused by another repository pushing to hint: the same ref. If you want to integrate the remote changes, use hint: 'git pull' before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
4.大文件请使用 Git-LFS 管理
解决方法:git lfs install,git lfs track "*.dll" ,参考链接
使用说明: https://help.aliyun.com/document_detail/321367.html
Dexter@LAPTOP-MKN50DTQ MINGW64 /e/WorkSpace/CSharpWork/PCMonitor (master) $ git push -u origin master Enter passphrase for key '/d/DataBase/Git/.ssh/aliyun_rsa': Enumerating objects: 1216, done. Counting objects: 100% (1216/1216), done. Delta compression using up to 8 threads Compressing objects: 100% (1181/1181), done. Writing objects: 100% (1215/1215), 597.77 MiB | 2.36 MiB/s, done. Total 1215 (delta 322), reused 0 (delta 0), pack-reused 0 (from 0) remote: Resolving deltas: 100% (322/322), done. remote: 推送失败,以下文件大小超过单文件 200MB 的系统限额: remote: Blob ID | 大小(MB) | 文件名 remote: ------------------------------- remote: 831335ba | 206.51 | libcef.dll remote: remote: 大文件请使用 Git-LFS 管理,使用说明: https://help.aliyun.com/document_detail/321367.html To codeup.aliyun.com:dexter/PCMonitor/PCMonitor.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'codeup.aliyun.com:dexter/PCMonitor/PCMonitor.git'