一、修改本地仓库的远程仓库url
从别的项目不想fork过来,而想自己新建一个仓库重新上传,并保留完整日志,可使用下方法:
git remote set-url origin https://github.com/ykevin/libopencm3.git
二、删除远程分支
github上有一个远程测试分支,已经好久不用了,现在想删除掉。
git push [远程名] :[分支名]
git push origin :test
三、添加项目的依赖模块
项目中经常会用到第三方库,这时想做为依赖库使用,而不是把代码完整下载到你的项目中。
在项目的根目录添加子模块
$ cd demo_project
$ git submodule add git://github.com/libopencm3/libopencm3.git
$ git submodule init
$ git submodule update
四、git下载单个目录
我靠,这个仓库这么大,哥就只想要里面的某个文件夹里面的代码,总不能让我都git下来,又不是svn,岂不忧伤,请参考下面的方法:
1. 初始化空仓储:
git init <repo> && cd <repo>
git remote add –f origin <url>
2. 打开sparse-checkout特性:
git config core.sparseCheckout true
3. 配置.git/info/sparse-checkout,列出你想要checkout的目录:
echo some/dir/ >> .git/info/sparse-checkout
echo another/sub/tree >> .git/info/sparse-checkout
4. 从远端获取代码:
git pull master
五、删除远程打的tags
git push origin master :1.0.0(tags名称)
六、删除远程的某一次提交,
经常有这种经历,某次提交已经到远程仓库了,现在后悔了,咋办?(先凉办吧,然后去买后悔药,嘿嘿),请按下面操作,将本地仓库回退到上一次提交记录,然后强制提交(慎用,用了以前的记录就真的消失 了)。
git push origin +master (注意“+”为强制提交)
七、在https方式下记住登录密码的方法
当你加入了ssh-key公钥后,你会发现有时提交时每次要输入密码,但有时不需要,当然这不是人品问题,而是git与https的区别,在repository中有个.git 目录,目录里面有个config文件,如果url = git://github.com/ykevin/cpuls.git 以这种方式git下来的代码,提交时就不需要每次输入密码,如果url = https://github.com/ykevin/cpuls.git则需要每次输入,那有没有解决方法呢?请参考下面,在你的仓库下面输入下面命令:
git config --global credential.helper store