1.把已有的項目代碼納入git管理
$ cd projectdir #projectdir項目代碼所在的文件夾
$ git init
2.新建的項目直接使用git管理
$ cd dir #dir 項目將要放置的文件夾
$ git init project_name # 會在dir路徑下創建和項目名稱相同的文件夾
$ cd projectdir
3.git文件操作命令
$ git add filename #向git中添加文件,filename為要添加入git管控的文件名稱
$ git add -u #添加所有文件
$ git reset HEAD #將暫存區文件恢復成和HEAD一致,全部文件
$ git reset HEAD filename #將暫存區文件恢復成和HEAD一致,filename 指定文件
$ git checkout -- filename #將工作區文件恢復成和HEAD一致,filename 指定文件
$ git rm filename #刪除文件
$ git mv filename newname #文件重命名,filename->newname
$ git status #查看git文件狀態
$ git commit -m 'comment' #向git中提交文件,comment:注釋信息
$ git reset --hard commitId #消除最近幾次的commit提交記錄,至指定分commitID
$ git diff #比較暫存區和HEAD所含文件的差異
$ git diff -- filename #比較工作區和暫存區指定文件的差異,多個文件用“空格”隔開
$ git diff --cached/staged #比較工作區和暫存區所含文件的差異
$ git diff commitId1 commitId2 filename #比較兩次提交的指定文件的差異
$ git log #查看git操作日志
$ git log -num#查看最近幾次的git操作日志
$ git log --graph #查看日志樹狀圖
$ git reset --hard #清空暫存區,不會破壞git的歷史
$ gitk #打開圖形界面工具,方便查看git版本變更歷史
$ git branch -av #查看分支
4.本地倉庫同步到github
$ git remote -v #查看遠程版本庫信息
$ git remote add githup <url> # 添加githup遠程版本庫
$ git fetch githup # 拉取遠程版本庫
$ git merge -h #查看合並幫助信息
$ git merge --allow-unrelated-histor #合並兩個不相干的分支
$ git push originname #推送代碼至指定分支
5.開發中臨時加塞緊急任務解決方案
$ git stash #將當前工作區文件放入堆棧中
$ git stash list #查看堆棧中緩存列表
$ git stash apply #將工作區文件恢復,將之前存放入stash中的內容取出來且stash中的內容還存在
$ git stash pop #將工作區文件恢復,將之前存放入stash中的內容取出來並丟掉stash中的內容
6.指定不需要git管理的文件
*.name #name文件及文件夾下的文件git都不管控
*.name/ #name文件夾下的文件git不管控
在.gitignore文件中配置文件,文件名必須為.gitignore
7.分支管理命令
$ git checkout branchname #切換分支命令,需切換到工作路徑下執行
$ git checkout -b branchname newbranchname #基於branchname創建新分支,並切換至新分支
$ git branch -d branchname #刪除分支命令,若代碼未merge,則不能刪除
$ git branch -D branchname #刪除分支命令,強制刪除分支
8.提交記錄修改
$ git commit -amend #對最新一次提交做 commit 修改
$ git rebase -i parentCommitId #對歷史提交commit修改,parentCommitId,需要修改的commit的父commitID
1.進入新的界面,將需要修改記錄的“pick”改為“reword/r”,保存並退出;
2.進入新的界面,添加新的message,保存並退出;
3.若要將多個分支合並至一個分支,則選擇保留一個分支為“pick”,其他的“pick”修改為“squash/s”,保存並退出, 然后添加commit message

4.把間隔的幾個commit整理成一個:
$ git rebase -i parentCommitId 進入rebase頁面,將需要合並的commit放到一起;然后將合並commit的“pick”修改為“squash/s”:


