git配置-新人git配置
个人git地址
用户名
2037632974@qq.com
密码 开机密码
新人git配置
1. 在本机生成公私钥ssh-keygen -t rsa -b 4096 -C "xx@xx.com" 默认生成的公私钥 ~/.ssh/
id_rsa.pub
id_rsa
去查了下4096是啥意思 参考博客ssh-keygen -t rsa -b 4096 -C "邮箱"_weixin_33775582的博客-CSDN博客
-b 4096:b是bit的缩写
-b 指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。命令中的4096指的是RSA密钥长度为4096位。
DSA密钥必须恰好是1024位(FIPS 186-2 标准的要求)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/qa/.ssh/id_rsa): yes
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in yes.
Your public key has been saved in yes.pub.
The key fingerprint is:
SHA256:MGbV/xx/xx lishan12@xx.com
The key's randomart image is:
+---[RSA 4096]----+
| ...OBB=Eo|
| . .O+oO=o=|
| = .o*+B *o.|
| o o o+B =.. |
| S.+o . |
| . o |
| . . |
| . . |
| . |
+----[SHA256]-----+
2. 配置登录git的username email。为公司给你分配的用户名 密码
第一步:
git config --global user.name 'username'
git config --global user.email 'username@xx.com'
第二步:设置永久保存
git config --global credential.helper store 复制代码
第三步:手动输入一次用户名和密码,GIT会自动保存密码,下次无须再次输入
git pull
3. 初始化仓库 git init
4. 拉取代码 git clone git@gitlab.xx.com:xx/xx.git
Cloning into 'xx-xx'...
git@gitlab.xx.com's password:
Permission denied, please try again.
git@gitlab.xx.com's password:
遇到的问题:没有出username 和 password成对的输入项 ,而是出了password输入项
都不知道密码是啥,跟登录git库的密码不一样。
然后使用http的方式,报一个错误:
1 2 3 |
|
提示SSL证书错误。发现说这个错误并不重要是系统证书的问题,系统判断到这个行为会造成不良影响,所以进行了阻止,只要设置跳过SSL证书验证就可以了,那么用命令 :
git config --global http.sslVerify false
然后可以了,但是还是会要用户名和密码:
1 2 3 4 5 6 |
|
参考博客git clone 提示输入git@xxx的密码 - 狂神314 - 博客园
第一次配置是按照如上配置的,第二次发现不生效了。。。
才发现是公钥出现了问题,要先设置用户和邮箱再重新生成ssh公钥即可。知道为啥上周生成的公钥不能用了么?因为..的运维把我的git登录权限禁止了。。。又经过一顿不懈的怼天怼地后,重新给我开通了。烧脑操作导致我要重新配置一遍git,服了。。。暴脾气忍不了
紧接着生成ssh
ssh-keygen -t rsa -C “your@email.com”(输入自己的邮箱)
后面出现的直接回车就可以,如果你的本地有很多pub 可以生成前重命名下
查看公钥
在cd ~/.ssh 找到ssh文件夹
打开id_rsa.pub,复制全部内容
点击右上角头像进入setting->左边菜单栏点击 ssh keys
紧接着 在your ssh key会有 多出一个新的ssh!!
接着push上去就可以顺利了!
git push -u origin --all
5. 然后再git clone 选择http
- Clone with SSH
- Clone with HTTPS
qa@lishandeMacBook-Pro-4:~/Desktop/2021/code$git clone https://gitlab.xx.com/cloud/xx-xx.git
Cloning into 'xx-xx'...
Username for 'https://gitlab.xx.com': lishan12
Password for 'https://lishan12@gitlab.xx.com':
remote: Enumerating objects: 16800, done.
remote: Counting objects: 100% (16800/16800), done.
remote: Compressing objects: 100% (5470/5470), done.
remote: Total 16800 (delta 11386), reused 16446 (delta 11132)
Receiving objects: 100% (16800/16800), 191.85 MiB | 8.85 MiB/s, done.
Resolving deltas: 100% (11386/11386), done.
Checking out files: 100% (4031/4031), done.
git邮箱 2037632974@qq.com 密码 Mac开机密码
ssh-keygen -t rsa -f ~/.ssh/id_rsa.username
chmod 644 ~/.ssh/config
【注】~/.ssh/config文件的权限必须是644
vim ~/.ssh/config
添加如下内容:
Host xx..com
User username
IdentityFile ~/.ssh/id_rsa.username
在vim ~/.ssh/config 添加如下3段配置
shitf+G 按下o
为什么要上传SSH公钥?
你的git客户端可通过SSH协议访问iCode, 什么是SSH
将你本地的SSH公钥上传到iCode之后, 每次执行git push/fetch自动使用SSH密钥认证
SSH Keys配置不当访问远端代码库会报错, 请务必按照以下步骤完成配置
如何上传?
1. 在Linux或Mac OS终端或Windows Git Bash, 执行ssh-keygen命令生成SSH公钥和私钥
>> ssh-keygen -t rsa
填写SSH密钥存放目录, 或直接回车存在在默认位置:
>> $HOME/.ssh/
输入SSH密钥的使用密码并记住, 每次下载和上传时会用到此密码; 或直接回车不设置密码
2. 查看并复制SSH公钥
>> cat ~/.ssh/id_rsa.pub
3. 粘贴到左侧框中, 添加保存即可
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "2037632974@qq.com"
git config --global user.email "xx@qq.com"
创建 git 仓库:
mkdir offline-tools
cd offline-tools
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/QAls/xx.git
git push -u origin master
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/QAls/xx.git
git push -u origin master
git拉取同步远程分支到本地(两种方法)
1、当本地有其他分支的代码仓库时
通过下述命令查看所有的远程分支:
git branch -r
下面有2种方法来拉取远程分支代码:
(1).需要本地分支和远程分支建立映射关系
执行如下命令:
git checkout -b 本地分支名xxx origin/远程分支名xxx
使用这种方式会在本地仓库新建分支xxx,并自动切换到新建的分支xxx,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支会和远程分支建立映射关系。
(2).不需要本地分支和远程分支建立映射关系
执行如下命令:
git fetch origin 远程分支名xxx:本地分支名xxx
使用这种方式会在本地仓库新建分支xxx,但是并不会自动切换到新建的分支xxx,需要手动checkout,当然了远程分支xxx的代码也拉取到了本地分支xxx中。采用这种方法建立的本地分支不会和远程分支建立映射关系。
2、当本地没有其他分支的代码仓库时
执行如下命令:
git clone -b 分支名 仓库地址
执行上述命令后就将远程分支拉取到了本地
remote: HTTP Basic: Access denied
如遇
remote: HTTP Basic: Access denied
remote: You must use a personal access token with 'read_repository' or 'write_repository' scope for Git over HTTP.
remote: You can generate one at http://gitlab.xx.xx.cn/-/profile/personal_access_tokens
fatal: 'http://gitlab.xx.xx/qa/xx.git/' 鉴权失败
解决办法:gitlab,点击头像-setting(Edit profile)-Access Tokens 设置token失效时间
设置完成生成 Feed token
git clone时候输入用户名 和 Feed token(代替密码) 下拉代码成功
[rejected] master -> master (fetch first)
! [rejected] master -> master (fetch first)
这是因为本地仓库修改前与远程仓库的内容(版本)不一致,可能是别人修改了远程仓库,而自己的本地仓库没有及时同步(拉取)过来
以致于在git push 提交时,会检测到之前从远程仓库拉取的时候的仓库状态和现在的不一样了
于是,为了安全起见,就出现了拒绝提交
解决方法:
方法一:
1、将远程仓库修改的内容更新到本地仓库: git pull --rebase origin master
注:如果远程仓库上已经更新的地方与当前提交的修改的地方一致,那么此时本地仓库上的修改可能会被覆盖。这样的话,可以先使用 git fetch origin master (不会自动合并),然后查看更新情况再进行有选择的合并;或者先将本地仓库修改过的内容备份,git pull origin master 后再重新修改;
2、再进行提交:git push origin master
方法二:(不建议)
利用 git 强制上传:git push -f origin master 或 git push --force origin master
它会忽略版本不一致等问题,强制将本地仓库上传的远程仓库。但是要慎用,因为本地仓库会覆盖远程仓库,如果远程仓库上有重要更新,都会被覆盖掉
更多推荐
所有评论(0)