git命令的奇技淫巧

1.git忽略规则,.gitignore不生效的解决办法

在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,在gitignore文件中定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached . 

git add .

git commit -m  "update .gitignore"

2.删除远程分支,并且及时清理本地分支

删除远程分支的命令: git push origin :feature_xxx, 就是在push的分支名字前面加 冒号。

而删除完远程分支之后,git branch -a还能看到远程有该分支, 这里可以输入 git fetch 及时更新查看的远程仓库的信息。

本地分支怎么做到及时清理?

办法有两个,我习惯的办法是,git branch -D xxxx(分支名字), 另外一种办法是, git remote prune origin , 这种方式我没仔细研究过。

?
 

3. 回滚代码

将代码提交到了远程的仓库,但是突然想把这几次的提交回滚到某个版本。

git reset --hard 某次提交的id,这个时候本地代码是会回滚到这个提交的阶段,然后

git push origin <分支名字>  -f,注意这里的-f,这个f参数可以让你强制提交远程代码,忽略落后于远程分支几次commit的情况

使用 git push origin <分支名字> -f ,这个有可能会返回permission 拒绝的错误, 原因是多数master分支都是被protected的状态,需要到代码托管平台,修改一下。

4. 删除本地除了master分支之外的其他分支

主要命令
git branch | grep -v "master" | xargs git branch -D

注意点 :
1.执行前需要切换到master分支执行
2.当前分支未做修改

5. 简写

git checkout -brach xxx  比如说我们要新建一个分支,并且跳到这个分支上就要使用这个命令。

我们可以简写成git ck -b xxx   

ck = checkout

br = branch

将这两个命令配置在 ~/.gitconfig的 [alias]下即可。如下图

6. 推送多个仓库

场景是这样的,我有一个项目,想要推送到github的同时,也想将代码推送到码云的git中。

方法有两种:

第一种简单粗暴,直接git remote add origin2 git@github.com:csucoderlee/my-awesome-project.git 直接添加另外一个远程源即可,这样每次都需要git push origin master / git push origin2 master 向两个代码仓库推送代码,可能有的人觉得这样每次都要向不同的仓库去推送比较麻烦,可能仓库地址多了的话,浪费时间,那就看第二种。

第二种git remote set-url --add origin <url2> ,配置多个远程的地址,这样每次只要提交一次 git push origin master 命令即可,就可以将代码分别推送到不同的仓库中,但是要注意的一点是,这样的方式git pull origin master代码,会有问题,只能从配置的第一个地址中去拉去代码,也就是fetch的url对应的就是第一个配置的远程仓库,其他的都只是push仓库。

可以使用git remote -v ,就看到第一个地址后面(fetch)其他的都是(push)。

所以个人推荐第一种

7. 修改分支名字

先改本地分支的名字

git branch -m oldbranchname newbranchname

删除远程旧的分支

git push origin :oldbranchname

推送改过名字的本地分支到远程

git push origin newbranchname

8. 删除未跟踪的文件/目录:

git clean -xdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值