删除分支
先切换到其他分支
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就行
添加公钥请参考上节内容
参考资料: