这篇主要是给自己做个记录,因为 Git 指令实在太多了…
Git 教学(1):Git的基本使用
Git 教学(2):Git Branch 的操作与基本工作流程
Git 情境剧:告诉你使用 Git 时什么情况该下什么指令
如何安装 Git
Mac : 安装 Homebrew
brew install git
Linux(Debian) : apt-get install git-core
Linux(Fedora) : yum install git-core
Windows : 下载安装 msysGit
如何设定 Git
Mac : Set Up Git on Mac
Linux : Set Up Git on Linux
Windows : Set up Git on Windows
如何开始一个 Git Respository
在专案底下使用 git init 开始一个新的 Git repo.
使用 git clone 复制一个专案
如何将档案加入 Stage
使用 git add 将想要的档案加入 Stage.
git add . 会将所有编修过的档案加入 Stage (新增但还没 Commit 过的档案并不会加入)
如何将档案从 Stage 中移除(取消add)
git reset HEAD 档案名称
如何将档案提交(commit)
使用 git commit会将 Stage 状态的档案做 Commit 动作
git commit -m “commit讯息” 可以略过编辑器直接输入 commit 讯息完成提交。
git commit -am “commit讯息” 等同于先git add .后略过编辑器提交 commit。
如何修改/取消上一次的 commit
git commit –amend 修改上一次的 commit 讯息。
git commit –amend 档案1 档案2… 将档案1、档案2加入上一次的 commit。
git reset HEAD^ –soft 取消刚刚的 commit,但保留修改过的档案。
git reset HEAD^ –hard 取消刚刚的 commit,回到再上一次 commit的 干净状态。
分支基本操作(branch)
git branch 列出所有本地端的 branch。
git branch -r 列出所有远端的 branch。
git branch -a 列出所有本地及远端的 branch。
git branch “branch名称” 建立一个新的 branch。
git checkout -b “branch名称” 建立一个新的 branch 并切换到该 branch。
git branch branch名称 起始点 以起始点作为基准建立一个新的 branch,起始点可以是一个 tag,branch 或是 commit。
git branch –track branch名称 远端branch 建立一个 tracking 远端 branch 的 branch,这样以后 push/pull都会直接对应到该远端的branch。
git branch –set-upstream branch 远端branch 将一个已存在的 branch 设定成 tracking 远端的branch。
git branch -d “branch 名称” 删除 branch。
git -r -d 远端branch 删除一个 tracking 的远端 branch,例如git branch -r -d wycats/master
git push repository名称 :远端branch 删除一个 repository 的 branch,通常用在删除远端的 branch,例如git push origin :old_branch_to_be_deleted。
git checkout branch名称 切换到另一个 branch(所有修改过程会被保留)。
远端操作(remote)
git remote add remote名称 remote网址 加入一个 remote repository,例如 git remote add github git://github.com/gogojimmy/test.git
git push remote名称 :branch名称 删除远端 branch,例如 git push origin :somebranch。
git pull remote名称 branch名称 下载一个远端的 branch 并合并(注意是下载远端的 branch 合并到目前本地端所在的 branch)。
git push 类似于 pull 操作,将本地端的 branch 上传到远端。
合并操作(merge)
git merge branch名称 合并指定的 branch 到目前的 branch。
git merge branch名称 –no-commit 合并指定的 branch 到目前的 branch 但是不会产生合并的 commit。
git cherry-pick SHA 将某一个 commit 的内容合并到目前 branch,指定 commit 是使用该 commit 的 SHA 值,例如 git cherry-pick 7300a6130d9447e18a931e898b64eefedea19544。
暂存操作(stash)
git stash 将目前所做的修改都暂存起来。
git stash apply 取出最新一次的暂存。
git stash pop 取出最新一次的暂存并将他从暂存清单中移除。
git stash list 显示出所有的暂存清单。
git stash clear 清除所有暂存。
常见问题:
我的 code 改烂了我想全部重来,我要如何快速回到干净的目录?
git reset –hard 这指令会清除所有与最近一次 commit 不同的修改。
merge 过程中发生 confict 我想放弃 merge,要如何取消 merge?
一样使用 git reset –hard 可以取消这次的 merge。
如何取消这次的 merge 回到 merge 前的状态?
git reset –hard ORIG_HEAD 这指令会取消最近一次成功的 merge 以及所有你在这次 merge 后所做的修改。
如何回复单独档案到原本 commit 的状态?
git checkout 档案名称 这指令会将已经被修改过的档案回复到最近一次 commit 的样子。