git使用筆記

轉(zhuǎn)載顏海鏡的文章

轉(zhuǎn)自segmentfault

這篇文章記錄個人常用的一些命令见妒,和記不住的一些命令颗管。

GotGitHub》github入門

git詳解》系列文章

安裝

在 Windows 上安裝 Git 同樣輕松,有個叫做 msysGit 的項目提供了安裝包:

http://msysgit.github.io/

完成安裝之后寝蹈,就可以使用命令行的 git 工具(已經(jīng)自帶了 ssh 客戶端)了兑障,另外還有一個圖形界面的 Git 項目管理工具侄非。

配置

首先是配置帳號信息

config

git config --globaluser.name yanhaijinggit config --globaluser.email yanhaijing@yeah.netgit config --list#查看配置的信息

help

githelpconfig#獲取幫助信息

配置自動換行(自動轉(zhuǎn)換坑太大)

git config --globalcore.autocrlf input#提交到git是自動將換行符轉(zhuǎn)換為lf

配置密鑰

ssh-keygen -t rsa -Cyanhaijing@yeah.net#生成密鑰ssh -Tgit@github.com#測試是否成功

新建倉庫

init

gitinit#初始化

status

gitstatus#獲取狀態(tài)

add

gitadd file#.或*代表全部添加

commit

gitcommit -m"message"#此處注意亂碼

remote

gitremote add origin git@github.com:yanhaijing/test.git#添加源

push

gitpush-u origin master#push同事設(shè)置默認跟蹤分支

從現(xiàn)有倉庫克隆

gitclonegit://github.com/yanhaijing/data.js.gitgitclonegit://github.com/schacon/grit.git mypro#克隆到自定義文件夾

本地

add

gitadd *#跟蹤新文件git add -u [path]#添加[指定路徑下]已跟蹤文件

rm

rm *&git rm *#移除文件git rm-f*#移除文件git rm --cached *#取消跟蹤git mv file_from file_to#重命名跟蹤文件git log#查看提交記錄

commit

gitcommit#提交更新gitcommit-m'message'gitcommit-a#跳過使用暫存區(qū)域,把所有已經(jīng)跟蹤過的文件暫存起來一并提交gitcommit--amend#修改最后一次提交

reset

gitresetHEAD *#取消已經(jīng)暫存的文件gitreset--mixed HEAD *#同上gitreset--soft HEAD *#重置到指定狀態(tài)旺垒,不會修改索引區(qū)和工作樹gitreset--hard HEAD *#重置到指定狀態(tài)彩库,會修改索引區(qū)和工作樹gitreset-- files#重置index區(qū)文件git revert HEAD#撤銷前一次操作git revert HEAD~#撤銷前前一次操作git revert commit##撤銷指定操作

checkout

git checkout-- file#取消對文件的修改(從暫存區(qū)——覆蓋worktree file)git checkout branch|tag|commit-- file_name#從倉庫取出file覆蓋當前分支git checkout-- .#從暫存區(qū)取出文件覆蓋工作區(qū)

diff

git diff file#查看指定文件的差異git diff --stat#查看簡單的diff結(jié)果git diff#比較Worktree和Index之間的差異git diff --cached#比較Index和HEAD之間的差異git diff HEAD#比較Worktree和HEAD之間的差異git diff branch#比較Worktree和branch之間的差異git diff branch1 branch2#比較兩次分支之間的差異git diff commit commit#比較兩次提交之間的差異

log

gitlog#查看最近的提交日志gitlog--pretty=oneline#單行顯示提交日志gitlog--graph --pretty=oneline --abbrev-commitgitlog-num#顯示第幾條log(倒數(shù))

stash

git stash#將工作區(qū)現(xiàn)場(已跟蹤文件)儲藏起來,等以后恢復(fù)后繼續(xù)工作先蒋。git stash list#查看保存的工作現(xiàn)場git stash apply#恢復(fù)工作現(xiàn)場git stash drop#刪除stash內(nèi)容git stashpop#恢復(fù)的同時直接刪除stash內(nèi)容git stash apply stash@{0}#恢復(fù)指定的工作現(xiàn)場骇钦,當你保存了不只一份工作現(xiàn)場時。

分支

branch

git branch#列出本地分支git branch -r#列出遠端分支git branch-a#列出所有分支git branch -v#查看各個分支最后一個提交對象的信息git branch --merge#查看已經(jīng)合并到當前分支的分支git branch --no-merge#查看為合并到當前分支的分支git branch test#新建test分支git branch -m old new#重命名分支git branch-dtest#刪除test分支git branch -D test#強制刪除test分支git branch --set-upstream dev origin/dev#將本地dev分支與遠程dev分支之間建立鏈接

checkout

gitcheckout test#切換到test分支git checkout -b test#新建+切換到test分支git checkout -b test dev#基于dev新建test分支竞漾,并切換

merge

gitmergetest#將test分支合并到當前分支gitmerge--squash test ##合并壓縮眯搭,將test上的commit壓縮為一條

cherry-pick

git cherry-pickcommit#揀選合并窥翩,將commit合并到當前分支git cherry-pick -ncommit#揀選多個提交,合并完后可以繼續(xù)揀選下一個提交

rebase

git rebase master#將master分之上超前的提交鳞仙,變基到當前分支git rebase --onto master169a6#限制回滾范圍寇蚊,rebase當前分支從169a6以后的提交git rebase --interactive#交互模式git rebase --continue# 處理完沖突繼續(xù)合并git rebase --skip# 跳過git rebase --abort# 取消合并

遠端

git fetch origin remotebranch[:localbranch]# 從遠端拉去分支[到本地指定分支]git merge origin/branch#合并遠端上指定分支git pull origin remotebranch:localbranch# 拉去遠端分支到本地分支gitpushorigin branch#將當前分支,推送到遠端上指定分支gitpushorigin localbranch:remotebranch#推送本地指定分支棍好,到遠端上指定分支gitpushorigin :remotebranch#刪除遠端指定分支git checkout -b [--track] test origin/dev#基于遠端dev分支仗岸,新建本地test分支[同時設(shè)置跟蹤]

git是一個分布式代碼管理工具,所以可以支持多個倉庫借笙,在git里扒怖,服務(wù)器上的倉庫在本地稱之為remote。

個人開發(fā)時业稼,多源用的可能不多盗痒,但多源其實非常有用。

git remote add origin1 git@github.com:yanhaijing/data.js.gitgit remote#顯示全部源git remote -v#顯示全部源+詳細信息git remoterenameorigin1 origin2#重命名git remote rm origin#刪除git remote show origin#查看指定源的全部信息

標簽

當開發(fā)到一定階段時低散,給程序打標簽是非常棒的功能俯邓。

git tag#列出現(xiàn)有標簽git tag v0.1#新建標簽git tag -a v0.1-m'my version 1.4'#新建帶注釋標簽git checkout tagname#切換到標簽git push origin v1.5#推送分支到源上git push origin --tags#一次性推送所有分支git tag -d v0.1#刪除標簽git push origin:refs/tags/v0.1#刪除遠程標簽

總結(jié)

啊哈!終于總結(jié)完了熔号,以后不會的時候稽鞭,再也不用到處去找了。

其實還有兩個最有用的命令還未提到跨嘉。

githelp*#獲取命令的幫助信息git status#獲取當前的狀態(tài)川慌,非常有用,因為git會提示接下來的能做的操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祠乃,一起剝皮案震驚了整個濱河市梦重,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌亮瓷,老刑警劉巖琴拧,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘱支,居然都是意外死亡蚓胸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門除师,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沛膳,“玉大人,你說我怎么就攤上這事汛聚∏掳玻” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長叹哭。 經(jīng)常有香客問我忍宋,道長,這世上最難降的妖魔是什么风罩? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任糠排,我火速辦了婚禮,結(jié)果婚禮上超升,老公的妹妹穿的比我還像新娘入宦。我一直安慰自己,他們只是感情好廓俭,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布云石。 她就那樣靜靜地躺著,像睡著了一般研乒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上淋硝,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天雹熬,我揣著相機與錄音,去河邊找鬼谣膳。 笑死竿报,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的继谚。 我是一名探鬼主播烈菌,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼花履!你這毒婦竟也來了芽世?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤诡壁,失蹤者是張志新(化名)和其女友劉穎济瓢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妹卿,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡旺矾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了夺克。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片箕宙。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖铺纽,靈堂內(nèi)的尸體忽然破棺而出柬帕,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布雕崩,位于F島的核電站魁索,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏盼铁。R本人自食惡果不足惜粗蔚,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饶火。 院中可真熱鬧鹏控,春花似錦、人聲如沸肤寝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲤看。三九已至缘揪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間义桂,已是汗流浹背找筝。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留慷吊,地道東北人袖裕。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像溉瓶,于是被迫代替她去往敵國和親急鳄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容