git笔记
参考教程:沉浸式学Git http://igit.linuxtoy.org/contents.html
设置编辑器
git config --global core.editor "vim"
clone指定分支
git clone -b 分支名 http://xxxxxxx
alisa别名
$vim ~/.gitconfig
[alisa]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
type = cat-file -t
dump = cat-file -p
保存密码
设置记住密码(默认15分钟): git config --global credential.helper cache
如果想自己设置时间,可以这样做: git config credential.helper 'cache --timeout=3600' 这样就设置一个小时之后失效
长期存储密码: git config --global credential.helper store
增加远程地址的时候带上密码也是可以的。(推荐) http://yourname:password@git.oschina.net/name/project.git
退回本地未提交更改
删除untracked的文件
$git clean -df
将tracked文件退回,不写hash则退回上一个版本
$git reset --hard <hash>
删除文件保留本地文件
$git rm -r --cached some-directory
tag
$ git tag -a 'v1.5' -m '注释' //创建本地标签
$ git push origin v1.5 //提交本地标签到远程
$ git push origin --tags //提交所有本地标签到远程
$ git tag -l //标签列表
$ git tag -d v1.5 //删除本地标签
$ git push origin --delete tag v1.5 //删除远程标签
下载子模块
git submodule update --init --recursive
删除子模块
git submodule deinit 模块名字
# 删除.gitmodules中记录的模块信息(--cached选项清除.git/modules中的缓存)
git rm --cached 模块名字
# 提交更改到代码库,可观察到'.gitmodules'内容发生变更
git commit -am "Remove a submodule."
submodule用法
# 拉取子模块
git submodule add https://github.com/cofess/hexo-theme-pure themes/pure
fork后合并原作者更新
git remote add upstream https://github.com/原作者地址
echo "获取远程源的更新。"
git fetch upstream
echo "合并到本地库中。"
git merge upstream/master
echo "提交到本地版本库中。"
git commit -a -m "merged upstream."
echo "推送提交到自己的github库中。"
git push