前言:是一個分散式版本控制軟件释移,最初由林納斯·托瓦茲制作叭披,于2005年以GPL協(xié)議出品。如網(wǎng)站github玩讳,本文簡單的介紹一些的git 的常用操作涩蜘。
1、 git init
命令作用:在當前目錄新建一個Git代碼庫
使用時間:當需要創(chuàng)建新倉庫時使用
代碼實例:git init
2熏纯、git add
命令作用:添加指定文件到暫存區(qū)
使用時間:當本地創(chuàng)建文件或更新文件時同诫,需要現(xiàn)將其存入暫存區(qū)
代碼實例:git add index.html
3、git commit -v
命令作用:提交時顯示所有diff信息
代碼實例:git commit -v
4樟澜、 git commit -m
命令作用:提交暫存區(qū)到倉庫區(qū)
使用時間:當所有的文件都創(chuàng)建或者更新完成并都提交至?xí)捍鎱^(qū)后使用
代碼實例:git commit -m "新的更新"
5误窖、代碼上傳
-
git pull
取回遠程倉庫的變化叮盘,并與本地分支合并 -
git push
上傳本地指定分支到遠程倉庫
6、一些簡單的查詢命令
-
git diff
顯示暫存區(qū)和工作區(qū)的差異 -
git status -sb
顯示有變更的文件 -
git log
顯示當前分支的版本歷史
7霹俺、git中commit合并
大致流程:
git log |head
git rebase -i d1
# if fail, use git rebase --abort
git push --force
詳細流程:
首先:查看提交歷史柔吼,
git log
,歷史記錄是按照時間排序的,時間近的排在前面丙唧。-
git rebase
愈魏。想要合并1-3條,有兩個方法:- 從HEAD版本開始往過去數(shù)3個版本
git rebase -i HEAD~3
- 指名要合并的版本之前的版本號
git rebase -i 3a4226b
請注意3a4226b這個版本是不參與合并的想际,可以把它當做一個坐標
- 從HEAD版本開始往過去數(shù)3個版本
-
選取要合并的提交
- 執(zhí)行了
rebase
命令之后培漏,會彈出一個窗口,頭幾行如下:
pick 3ca6ec3 '注釋**********' pick 1b40566 '注釋*********' pick 53f244a '注釋**********'
- 將
pick
改為squash
或者s
,之后保存并關(guān)閉文本編輯窗口即可胡本。改完之后文本內(nèi)容如下:
pick 3ca6ec3 '注釋**********' s 1b40566 '注釋*********' s 53f244a '注釋**********'
- 執(zhí)行了
然后保存退出北苟,Git會壓縮提交歷史,如果有沖突打瘪,需要修改友鼻,修改的時候要注意,保留最新的歷史闺骚,不然我們的修改就丟棄了彩扔。修改以后要記得敲下面的命令:
git rebase --abort
如果沒有沖突,或者沖突已經(jīng)解決僻爽,則會出現(xiàn)如下的編輯窗口虫碉,輸入提交信息后退出即可。
# This is a combination of 4 commits.
#The first commit’s message is:
注釋......
# The 2nd commit’s message is:
注釋......
# The 3rd commit’s message is:
注釋......
# Please enter the commit message for your changes. Lines starting # with ‘#’ will be ignored, and an empty message aborts the commit.
- 然后再次查看提交歷史就會發(fā)現(xiàn)這幾次提交已經(jīng)被合并了胸梆,然后
git push -f
提交到遠程即可敦捧。- 關(guān)于
git push -f
命令:
如果遠程主機的版本比本地版本更新,推送時Git會報錯碰镜,要求先在本地做git pull
合并差異兢卵,然后再推送到遠程主機。這時绪颖,如果你一定要推送秽荤,可以使用--force
選項。使用--force
選項柠横,結(jié)果導(dǎo)致遠程主機上更新的版本被覆蓋窃款。除非你很確定要這樣做,否則應(yīng)該盡量避免使用--force
選項牍氛。
- 關(guān)于