Git使用方法

2019-01-22  本文已影响0人  D_Major

参考:

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
上一篇 下一篇

猜你喜欢

热点阅读