学习使用 git 管理项目版本,使用 github 做远程仓库保管代码已经很久了,但一直没有成建制地记录 git 相关知识点,所谓不动笔墨不读书,特地开一篇新博文记录些基础知识,以及实际使用过程中遇到的问题。
基础 首先还是推荐大神的文章《git-简明指南》 ,这几乎是我见过的直观的简洁的git教程。
常用指令 如果你是第一次学习git,那我建议你创建一个github项目仓库边学边练。
1 2 git config -global user.name "feke9432" git config -global user.email "feke9432@gmail.com"
1 2 3 4 git init // 表示创建一个裸库,主要应用场景是作为公共仓库 git init --bare
1 git clone [地址 || 别人的远程地址]
1 git remote add orgin 远程地址
1 2 git show-ref <--[tag|heads|...]> # d222276df74f0d87e6fd12ea06b7ee6511355452 refs/tags/test
1 git push origin --delete new_a
1 git rm --cached filename
1 2 3 git branch -d 分支名 // 强制删除 git branch -D 分支名
1 git push origin --delete total-router
1 2 3 git reflog //=> 获取 id git reset --head 版本id // => 先回退本地版本 git push -f // => 强制推送本地版本到远程,也就是说远程没有回退,实际是强制推送了旧版本
1 2 3 git remote -v // 查看当前协议内容 git remote set-url origin 新连接 git remote -v // 再次查看切换是否成功
1 2 3 git config --global credential.helper store // 永久记住密码 git config –global credential.helper cache // 默认记住15分钟 git config credential.helper ‘cache –timeout=3600’ // 定义配置记住1小时
本地项目添加远程目录 1 2 3 // 添加远程目录 git remote add orgin 远程地址
git => everything up-to-date 解决 隔了三天灭有上传博客文件,突然不能提交了。。。求助谷歌后,可能是git认为我的改动已经上传过了,但实际我没有。。。
解决办法简单来说就是:新建分支,上传到新分支,然后回主分支合并刚刚新建的分支到主分支就可以上传了,最后记得删除无用侧分枝。
简单代码步骤 git check -b newBranch => git add . => git commit -m”some thing” => git checkout master => git merge newBranch => git branch -d newBranch
git 忽略大小写问题 开发代码中很多时候是要求区分大小写的,所以为了不必要的困扰,执行以下语句:
1 git config core.ignorecase false
git 提交 themes/next 失败 报错信息:
1 2 3 4 5 6 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) (commit or discard the untracked or modified content in submodules) modified: themes/next (modified content)
解决办法:
1 2 // 删除缓存后重新添加 git rm --cache themes/next
不通用流程,本地仓库设置远程库
本地库和远程库都新建好
本地修改代码,远程库添加 README
本地修改提交
添加远程库:
1 git remote add origin <你库的地址>
将本地库和远程库强制合并:
1 2 3 4 git pull origin master --allow-unrelated-histories // 对应报错 fatal: refusing to merge unrelated histories