Git命令大全
前言
Git是一个很强大的version control工具,从入门coding开始的那天工作和日常就离不开git,但是git的这些常用命令有时候还是会忘记,我在这里把git commands大概的记录下来,已方便自己的查阅。
设定你的Git
设定作者的信息
git config --global user.name "jimmy kuo"
git config --global user.email "jimmy@gogojimmy.net"
查看git的设定
git config -- list
建立自己的Git Repository
自己建立一个新的Repository
git init
Clone别人的Repository
git clone
Git的基本功(status, add, commit, log, .gitignore)
查看git repository的修改状况
git status
Untracked files(未被追踪的files,新增/修改的files还没被提交到git repository上的)
git add *
提交后状态变为 Changes to be committed
changes to be commited
committed之后的状态叫做stage,修改过但还没使用git add的file叫做unstage
git log
查看过去commit的记录
git log –stat
git log -p
更详细的变更内容,具体到代码
Git流程整理
修改file -> 加入stage(git add) -> 提交(git commit)-> 继续修改其他file
Git Branch
查看当前branch
git branch
开一个新的branch,名叫cat
git branch cat
切换到别的branch
git checkout cat
合并branch到master branch
基于master branch目前最后一次的commit内容再往后把你在cat branch上commit的内容加上去
git rebase
查看master branch和其他branch的差异
git diff
把cat branch上开发的东西合并到master上
git merge cat
Confict: 冲突处理
通常在merge或是rebase的过程中产生了confict,这时候git会停下来请你去处理
- 将发生confict的档案打开,处理内容(删除<<<.===,>>>)
- 使用git add 将处理好的file加入stage
- 反复1~2直到所有confict处理完毕
- git commit提交合并信息
- 完成
取消上一次的操作
取消刚刚的merge动作
git reset --hard ORIG_HEAD
取消已暂存的file
取消刚刚add到stage中还没修改完的file
git reset HEAD file
取消刚刚修改过的file
git checkout -- file
回复前修改的档案要记得备份
修改上一次的commit讯息
git commit --amend
强制恢复到上一次commit的版本
git reset --hard HEAD
恢复到上一次commit的版本,HEAD^指目前版本的上一个版本,Head~2是再上一个
- git reset, hard 與 soft 的差異
你可能會在這邊感到疑惑,在使用 git reset 的時候都會看到一個 soft 或是 hard 的參數,這代表什麼樣的意義?基本上在使用 git reset 的時候,都會把目前狀態回復到你想回復的版本,但若是不加參數的情況,會把你做過的修改仍然保留,但是,若是加上 —soft 參數,則會把做過的修改加入 stage ,若是加上 hard 參數的話則是把做過的修改完全刪除,回到那個版本原本的樣子。
暂存操作(Stash)
将目前所做的修改都暂存起来
git stash
取出最新一次的暂存
git stash appl
取出最新一次的暂存并将他从暂存清单中移除
git stash pop
显示出所有的暂存清单
git stash list
清楚所有的暂存
git stash clear