参考:
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
解决github速度过慢(linux, mac均可用):
最好在ipaddress.com搜索, nslookup搜的不准
nslookup github.global.ssl.fastly.net
nslookup github.com
sudo vim /etc/hosts # 修改hosts
sudo /etc/init.d/networking restart # 然后刷新DNS缓存(Linux)
# mac使用如下两条刷新DNS缓存:
sudo killall -HUP mDNSResponder
sudo dscacheutil -flushcache
本机:
先 git add Filename , 再 git commit -m "本次名称" ,其中 git commit -am "本次修改名称" (不用add可直接上传)
git init 文件夹需先初始化 , git status 查看当前修改过的和未上传的状态 , git log 查看上传记录, git show 查看最近一次上传详细内容
撤销undo操作:
git checkout -- Filename 将对该文件所做的修改都撤销
若文件已add到暂存区,则git reset HEAD Filename将文件恢复到工作区,之后使用checkout命令撤销修改
若文件已commit到版本库,则需要版本回退
版本回退:
如果push到origin的时候提交错了分支, 如把code_format提交到了master, 此时master的都是最新的, 不会被提交到origin. 所以只需要使用git reset HEAD^
撤销一次commit即可重新提交到origin code_format.
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本
服务器端:
从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库,叫做clone.(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
从远程服务器获取到一个branch分支的更新到本地,并更新本地库,叫做pull.(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
git pull相当于是从远程获取最新版本并merge(合并)到本地 ,即git pull = git fetch + git merge
先git clone https://github.com/D-Major/cd61b +(可选)本地目录名,克隆到本地文件夹,该命令会在本地主机生成一个目录,与远程主机的版本库同名,如果要是制定不同的目录名,可以将目录名作为git clone 命令的第二个参数
git remote add repo-name(如origin) repo-url(如https://github.com/D-Major/cd61b),把别人的库拉过来,起个名
git remote -v 查看当前所有库名称和对应url
git pull repo-name master(远程分支)+(可选)本地分支, 获取对应库最近一次备份
如果提示“fatal: refusing to merge unrelated histories”则强制合并:
git pull --rebase --allow-unrelated-histories repo-name master
之后修改文件,git add ,git commit ,push到服务器:
git push repo-name master
push之前要先pull到本地
强制拉取远程分支: git fetch --all && git reset --hard origin/master && git pull
删除远程分支: git push origin :分支名
重命名远程分支:
git branch -m <old_name> <new_name> 在本地的clone版本中重命名分支
git push origin :<old_name> 删除远程分支
git push origin <new_name>将本地的新分支名push到远程
补充:本地git 操作
git branch <new_branch_name> 建立本地 local branch
git branch -m <old_name> <new_name> 改名字 (如果有同名會失敗,改用 -M 可以強制覆蓋)
git branch 列出目前有那些 branch 以及目前在那個 branch
git checkout <branch_name> 切換 branch (注意到如果你有檔案修改了卻還沒 commit,會不能切換 branch,解法稍後會談)
git checkout -b <new_branch_name> (<from_branch_name>) 本地建立 branch 並立即 checkout 切換過去
git branch -d <branch_name> 刪除 local branch
git reset --hard origin/dblock 使用dblock分支覆盖目前所处的分支
.gitignore增加.idea/
在已经add过.idea/之后, 再次在.gitignore中添加./idea是没有用的, 需要从stage中删掉.idea/, 再把.gitignore重新提交一次
# .gitignore先添加/.idea/
git rm --cached -r .idea
git add .gitignore
git commit -m "gitignore提交删除.idea"
# git push origin master