git使用过程中一些问题汇总

删除分支

先切换到其他分支

1. 删除本地分支

git branch -d <BranchName>

2. 删除远程分支

git push origin --delete <BranchName>

git修改远程仓库地址

1.修改命令

git remote set-url origin [url]

2.先删后加

git remote rm origin
git remote add origin [url]

3.直接修改config文件

git修改分支名称 

branch_new: 将修改为的分支名

branch_old: 之前的分支名

1. 修改本地分支名称

git branch -m 'branch_new'

2.修改远程分支名称

git branch -m 'branch_new'
git push origin :branch_old
git push --set-upstream origin branch_new

git放弃本地文件修改

1. 未使用git add 缓存代码

使用git checkout -- filename,注意中间有--

git checkout -- filename

放弃所有文件修改 使用 git checkout .

git checkout .

2. 已使用git add缓存代码,未使用git commit

使用git reset HEAD filename

git reset HEAD filename

放弃所有文件修改,使用git reset HEAD 

git reset HEAD

此命令是用来清除git 对于文件修改的缓存,相当于撤销git add命令所在的 工作。使用该命令后,本地的修改并不会消失,而是回到了第一步1.1 未使用git add缓存代码,继续使用git checkout -- filename,就可以放弃本地修改。

3. 已经使用git commit提交了代码

使用git reset --hard HEAD^来回退到上一次commit的状态

git reset --hard HEAD^

或者先使用git log命令查看git提交历史和commit id ,再使用git reset --hard commit id来回退到任意版本

git reset --hard commit id

强制更新到远端分支

git push -f origin master

 但如果项目master分支被保护会报错,去Setting>Registry>Protected Branches UnProtect master分支后重新提交就行

本地项目推送到gitlab

1.初始化本地项目

执行 git init

此命令初始化一个新本地仓库,它在工作目录下生成一个名为.git的隐藏文件夹

2.关联gitlab远程库

执行 git remote add origin <远程库> // 将本地项目与远程项目连接起来

可以通过执行 git remote -v 查看是否关联成功

3.推送代码

git add .

git commit -m 'xxx'

git push

注意: 将本地项目推送到gitlab上时,会出现refusing to merge unrelated histories(拒绝合并不相关的历史), 出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库

通过执行

git pull origin master --allow-unrelated-histories 


该命令可以合并两个独立启动仓库的历史, 将远程仓库的文件拉取到本地仓库了

Mac环境下git生成SSH公钥

1.进入.ssh目录

打开Mac终端(Terminal),输入以下命令

cd ~/.ssh

2.查看是否有已存在的公钥

ls

检查目录下是否有名为id_rsa.pub的文件

如果已经存在且不需要新的公钥,就可以直接打开该文件,获取到公钥。
输入以下命令打开文件:

cat id_rsa.pub

红框内就是SSH公钥 

 

 如果有该文件但是需要新的,请继续第3步;
如果没有该文件,请跳过第3步,继续第4步。

3.删除旧公钥

依次输入以下命令删除旧公钥:

mkdir key_backup
cp id_rsa* key_backup
rm id_rsa*

4.生成公钥

输入以下命令生成公钥:

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

将你的邮箱替换到上面的位置,输入命令后会有几个设置密码的提示,如果不需要设置密码,直接一直按回车键到结束,如果需要设置密码请按提示输入密码。(如果你设置了密码,以后一些git操作会需要密码,如:提交代码)完成公钥的生成后可以参考第2步查看生成的公钥。

Mac管理多个SSH KEY

1. 新添加 ssh key

比如添加github的密钥

//为了保证后面只需要输入名字首先切换到本机ssh目录
cd ~/.ssh
//创建ssh-key
ssh-keygen -t rsa -C  "你的邮箱"
//为新生成的秘钥命名,由于已经在ssh目录下了,所以只需输入文件名
Enter file in which to save the key (/Users/xxx/.ssh/id_rsa):id_rsa_github

2. 设置ssh key的代理

首先查看代理

ssh-add -l 

若提示Could not open a connection to your authentication agent.

则系统代理里没有任何key,执行如下操作

exec ssh-agent bash 

若系统已经有ssh-key 代理 ,可以删除

ssh-add -D

代理中添加私钥

默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:

ssh-add ~/.ssh/id_rsa_xxx 
ssh-add ~/.ssh/id_rsa_gitlab
ssh-add ~/.ssh/id_rsa_github 
ssh-add -l

 编辑配置文件config

touch ~/.ssh/config  
//或者
vim ~/.ssh/config  

添加内容

# github
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa_github
user git

# gitlab
Host gitlab
HostName https://gitlab.ics-i.com/
IdentityFile ~/.ssh/id_rsa_gitlab
user git

 每个字段意思

# 服务器1
Host     别名(方便记忆)
HostName IP地址或者域名(可以写假域名,但要在host文件中绑定ip地址)
Port     默认是22可以不写,如果自己搭建的服务器监听的是其他端口这个参数必须声明
IdentityFile  私钥文件路径
User     用户名一般写git就行

添加公钥请参考上节内容

参考资料:

Mac管理多个SSH KEY - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值