GIT基本操作

創建本地倉庫

使用git bash進入需要創建倉庫的目錄下:

cd xxxx

git init? 創建本地倉庫

此時目錄中會多了一個 .git目錄,如果沒有可能是隱藏的,可以ls -ah查看

添加文件到倉庫

創建一個readme.txt:mkdir xxx(創建目錄)? vi xxx(創建文件)

vi readme.txt 然后進行編輯,編輯后先按一下ESC退出編輯,然后輸入:wq退出并保存編輯的內容,:q僅僅是退出不會保存

git add xxx(如 readme.txt)一次可添加多個文件,多個文件間用空格隔開,實際的作用是將文件添加到暫存區

這里如果是window 可能會出現警告,但并不影響后面的使用。waring:LF will be replaced by CRLF in gitTest/readme.txt.the file will have its original line endings in your working directory

windows中的換行符為 CRLF(如編輯時文件中使用回車鍵來換行), 而在Linux下的換行符為LF,所以在執行add . 時出現提示,解決辦法:

$ rm -rf .git? // 刪除.git?????????????????????????????????????????????????????????????????????? $ git config --global core.autocrlf false? //禁用自動轉換

$ git init? // 重新建立
$ git add . // 重新添加

git commit -m "xxx"將文件提交到倉庫,并附上說明信息,實際的作用是將暫存區的文件提交到當前分支

git status命令可以查看當前倉庫的狀態(一般都是只文件的狀態,如修改了文件后沒有提交,或新增了很多文件沒有提交)

git diff 查看文件修改的狀況(所有文件)?? git diff xxx(查看指定文件)

git log查看提交記錄,可以通過記錄的commit id來做版本回退

git reset --hard xxx(一般id的前6~8位就可以了)

git reflog當git log查不到對應的版本時,可以使用這個來查看,這個是查看所有提交的記錄,git log 有時在git reset后就看不到reset之前的那個版本了

git checkout -- file命令中的 -- 很重要,沒有--,就變成了“切換到另一個分支”的命令,我們在后面的分支管理中會再次遇到git checkout命令。這個命令是讓這個文件回到最近一次git commit或git add時的狀態

git reset HEAD file可以把暫存區的修改撤銷掉(unstage),重新放回工作區。就是你修改了文件并且已通過git add添加到了暫存區,但還沒有commit就可以用 git reset HEAD readme.txt來恢復readme.txt這個文件添加到暫存區之前的狀態,并將暫存區清空。

上傳至遠程倉庫

關聯遠程倉庫 $ git remote add origin git@github.com:yourName/projectName.git

將本地倉庫推送到遠程庫上 :git push -u origin master實際上是把當前分支master推送到遠程。由于遠程庫是空的,我們第一次推送master分支時,加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。推送成功后,可以立刻在GitHub頁面中看到遠程庫的內容已經和本地一模一樣。以后就可以直接git push origin master推送的遠程庫

git 分支的應用

git branch dev 創建名為dev的分支

git checkout dev 切換到名為dev的分支上

git checkout -b dev 創建并切換到名為dev的分支,相當與上面兩句

git branch 查看所有分支,當前分支前面會標一個 * 號

git merge dev 將dev提交的合并到當前分支

git branch -d dev 刪除名為dev的分支(切記如果在此分支上做過修改和增加一定要在合并后才刪)

多人協作

當你從遠程倉庫克隆時,實際上Git自動把本地的master分支和遠程的master分支對應起來了,并且,遠程倉庫的默認名稱是origin。

要查看遠程庫的信息,用git remote:

$git remoteorigin

或者,用git remote -v顯示更詳細的信息:

$git remote -vorigin? git@github.com:michaelliao/learngit.git (fetch)origin? git@github.com:michaelliao/learngit.git (push)

上面顯示了可以抓取和推送的origin的地址。如果沒有推送權限,就看不到push的地址。

推送分支

推送分支,就是把該分支上的所有本地提交推送到遠程庫。推送時,要指定本地分支,這樣,Git就會把該分支推送到遠程庫對應的遠程分支上:

$git push origin master

如果要推送其他分支,比如dev,就改成:

$git push origin dev

現在,你的小伙伴要在dev分支上開發,就必須創建遠程origin的dev分支到本地,于是他用這個命令創建本地dev分支:

$git checkout -b dev origin/dev

現在,他就可以在dev上繼續修改,然后,時不時地把dev分支push到遠程你的小伙伴已經向origin/dev分支推送了他的提交,而碰巧你也對同樣的文件作了修改,并試圖推送,如果推送失敗,因為你的小伙伴的最新提交和你試圖推送的提交有沖突,解決辦法也很簡單,Git已經提示我們,先用git pull把最新的提交從origin/dev抓下來,然后,在本地合并,解決沖突,再推送。git pull也失敗了(提示:“no tracking information”),原因是沒有指定本地dev分支與遠程origin/dev分支的鏈接,根據提示,設置dev和origin/dev的鏈接:git branch --set-upstream branch-name origin/branch-name

小結

- 查看遠程庫信息,使用git remote -v;

- 本地新建的分支如果不推送到遠程,對其他人就是不可見的;

- 從本地推送分支,使用git push origin branch-name,如果推送失敗,先用git pull抓取遠程的新提交;

- 在本地創建和遠程分支對應的分支,使用git checkout -b branch-name origin/branch-name,本地和遠程分支的名稱最好一致;

- 建立本地分支和遠程分支的關聯,使用git branch --set-upstream branch-name origin/branch-name;

- 從遠程抓取分支,使用git pull,如果有沖突,要先處理沖突。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容

  • 不斷更新中 基本操作 查看git地址 git remote -v 將一個本地分支推送到服務器遠程倉庫 git...
    字字珠璣閱讀 3,568評論 0 8
  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,686評論 4 54
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,691評論 9 163
  • 樓主的手機癮還是相當大,但玩手機玩久了對身體,對生活,對神馬一切的都不太好。 所以樓主推薦幾款親測有效的App !...
    小周_6fd3閱讀 14,095評論 0 2
  • 俗話說“三十而立,四十不惑”。王莊村有個傳統,結了婚,成了家,才算立了業。村里的半大不小的娃子都娶妻生子了...
    青正堂主閱讀 275評論 0 0