git常用操作

git常用操作

第一次連接遠程倉庫的配置

配置user.name 和user.email

  • git config --global user.name "name" 設(shè)置你的用戶名
  • git config --global user.email "emil" 設(shè)置用戶的email賬號

生成密鑰

  • ssh-keygen -t rsa -C "your email" 其中填的是你的注冊的github的賬號彭则,輸入之后如果不需要輸入密碼的話鳍刷,連續(xù)輸入三個回車即可,最后在你的在終端輸入 cd ~/.ssh 進入到你的文件下可以看到有兩個文件id_rsaid_rsa.pub,最后復(fù)制你的id_rsa.pub中的內(nèi)容到github中的賬號中即可
  • ssh -T git@github.com 如果上面的步驟已經(jīng)完成了俯抖,那么就是驗證是否完成了输瓜,輸入上述語句,如果出現(xiàn)信息芬萍,那么證明說明你已經(jīng)成功了

管理修改

通常我們在提交之后會想要修改尤揣,當(dāng)然我們是在文件上直接修改,但是修改后在git上輸入git status查看此時的工作區(qū)的狀態(tài)柬祠,你會發(fā)現(xiàn)出現(xiàn)了出現(xiàn)了如下的語句:

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   file.txt

no changes added to commit (use "git add" and/or "git commit -a")

從上面的提示可以看出我們有如下方案:

  • 首先執(zhí)行->git add file.txt,然后重新提交git commit -m 'modified file.txt

撤銷修改(沒有提交的[commit])

這里的撤銷修改僅僅是對于沒有提交的撤銷(git commit -m ''),在下面會講到如何撤銷提交后的撤銷

git add

當(dāng)我們修改后會出現(xiàn)上面的提示北戏,前面已經(jīng)貼過了,這里就不再貼代碼了漫蛔,根據(jù)提示嗜愈,我們可以git checkout -- file.txt來丟棄工作區(qū)的修改,之后就可以看見先前的修改已經(jīng)不見了

已經(jīng)git add

當(dāng)我們修改文件后并且git add 添加到暫存區(qū)了莽龟,那么查看狀態(tài)git status,出現(xiàn)的提示如下

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   file.txt

根據(jù)上面提示的方法:輸入git reset HEAD file.txt,可以看到文件回到git add的狀態(tài)了蠕嫁,這時如果你想要丟棄修改,使用git checkout -- file.txt,之后就可以看到你的修改已經(jīng)不見了

刪除文件

其實刪除也是一種修改操作毯盈,我們在文件管理器中直接使用rm刪除文件剃毒,這時輸入git status可以看到如下的提示:

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        deleted:    file.txt

no changes added to commit (use "git add" and/or "git commit -a")
PS G:\file> git checkout -- file.txt
  • 如果你不想刪除了,想要恢復(fù)原來的文件,使用git checkout -- file.txt 這個命令可以讓撤銷修改赘阀,也可以撤銷刪除陪拘,起到一鍵還原的作用
  • 如果你想要繼續(xù)刪除,那么有兩種方法:
  1. first:git add file.txt,second:git commit -m ''
  2. first:git rm file.txt,second:git commit -m ''

注意: git rm file 可以用來刪除提交到版本庫中的文件,一般刪除要執(zhí)行以下命令:git rm file.txt,git commit -m 'delete'纤壁,注意在git commit之前還是可以取消刪除的左刽,使用git checkout -- file.txt,可以一鍵取消刪除

創(chuàng)建與合并分支

常用命令:

  • git checkout -b dev 創(chuàng)建并且切換到dev分支
  • git checkout dev 切換到dev分支
  • git branch 查看所有的分支酌媒,帶有*的是當(dāng)前所處的分支
  • git branch -d dev 刪除dev分支欠痴,一般在合并之后刪除
  • git branch -D dev :強制刪除分支,一般在沒有合并就刪除分支會出現(xiàn)不能刪除秒咨,這是就要使用強制刪除這個分支的命令
  • git merge devdev分支合并到當(dāng)前分支,使用到Fast forward模式喇辽,但這種模式下,刪除分支后雨席,會丟掉分支信息菩咨。
  • git merge --no-ff -m "merge with no-ff" dev 強制禁用Fast forward模式,Git就會在merge時生成一個新的commit陡厘,這樣抽米,從分支歷史上就可以看出分支信息。
  • git log --graph --pretty=oneline --abbrev-commit 查看分支歷史

創(chuàng)建合并

  • 首先我們創(chuàng)建一個dev分支,使用命令:git checkout -b dev(創(chuàng)建一個dev分支糙置,并且切換到dev分支上)云茸,我們可以使用git branch查看所有的分支
  • 現(xiàn)在在改變之前master分支上的file.txt文件內(nèi)容,之后git add file.txt,并且提交到版本庫中了(git commit -m 'file.txt')谤饭,此時使用git checkout master切換到master分支上标捺,查看file.txt的文件內(nèi)容,可以看到里面的內(nèi)容并沒有改變揉抵,由此可知兩個分支是獨立的亡容,如果你在一個分之上創(chuàng)建了文件并且提交到版本庫中了,切換到另外一個分支上冤今,此時可以發(fā)現(xiàn)原來創(chuàng)建的文件不見了闺兢,因為那是另外一個分支的文件,當(dāng)然我們可以合并分支辟汰,使用git merge dev,這兩個命令將dev分支合并到當(dāng)前分支**

Bug分支管理

如果正在一個分支上工作列敲,另外一個分支上的程序有一個Bug需要馬上修改,但是此時這個分支上的東西還需要很長時間才能完成帖汞,這應(yīng)該怎么辦呢戴而?難道要放棄當(dāng)前分支上的修改嗎?當(dāng)然不是了翩蘸,幸好所意,Git還提供了一個stash功能,可以把當(dāng)前工作現(xiàn)場“儲藏”起來,等以后恢復(fù)現(xiàn)場后繼續(xù)工作扶踊,具體步驟如下:

  • git stash 將當(dāng)前的工作狀態(tài)暫時存儲在stash中泄鹏,輸出如下信息
Saved working directory and index state WIP on dev: 6224937 add merge
HEAD is now at 6224937 add merge
  • 此時可以使用git status 查看當(dāng)前的分支上的狀態(tài),可以知道當(dāng)前的的工作區(qū)就是干凈的秧耗,因此可以放心的修復(fù)另外一個分支上的的Bug
  • git checkout master 切換分支备籽,修復(fù)Bug
  • git checkout dev 修復(fù)好Bug繼續(xù)回到上一個分支干活
  • git stash list 可以看到工作現(xiàn)場還在,輸出如下信息:
stash@{0}: WIP on dev: 6224937 add merge

如果有多個修改的內(nèi)容分井,這里的信息肯定不止一條

  • git stash apply:恢復(fù)修改车猬,但是這只是恢復(fù)stash的內(nèi)容并不會刪除,這里建議使用git stash pop 既恢復(fù)了又刪除了stash中內(nèi)容尺锚,注意這里只能恢復(fù)一條數(shù)據(jù)珠闰,此時使用git status查看狀態(tài),可以看到已經(jīng)出現(xiàn)修改的內(nèi)容了
  • git stash list :此時查看當(dāng)前stash中的內(nèi)容可以看到已經(jīng)什么都沒了瘫辩,當(dāng)然這只是清除一條伏嗜,如果本來有多個,那么還是會有其他內(nèi)容的

常用命令

  • git stash 將當(dāng)前的分支上的工作暫存到stash
  • git stash list 列出stash中的所有暫存的內(nèi)容
  • git stash pop 恢復(fù)并且刪除stash中的內(nèi)容
  • git stash apply 恢復(fù)但是步刪除stash中的內(nèi)容

遠程倉庫的操作

常用的命令

  • git remote -v 查看遠程倉庫的詳細(xì)信息
  • git remote add remote-name URL 添加遠程倉庫
  • git remote rename origin pb 將遠程倉庫的origin改為pb伐厌,此時使用git remote 查看可以知道這里已經(jīng)沒有origin了承绸,變成了pb
  • git remote rm origin 將遠程倉庫origin刪除
  • git push origin master 將內(nèi)容提交到遠程倉庫origin的master上奉芦,當(dāng)然這里亦可以使用其他的分支
  • git clone URL 克隆一個遠程倉庫,這里的URL是遠程倉庫的地址
  • git pull origin 將遠程倉庫中更新的數(shù)據(jù)拉到本地
  • git checkout -b branch-name origin/branch-name 在本地創(chuàng)建和遠程倉庫對應(yīng)的分支韩肝,最好分支的名字相同
  • git push origin branch-name 推送到遠程倉庫的分支

注意

同一個文件夾中可以添加很多遠程倉庫粪薛,不過可以在提交的時候需要指定遠程倉庫的名字,比如在你的文件夾下有origin和pb兩個遠程倉庫墩剖,可以使用git remote -v查看詳細(xì)的信息,此時你在版本庫中已經(jīng)有想要推送的文件了,那么使用git push origin master就可以指定推送到origin遠程倉庫中

實例

假如你新建一個文件夾画饥,此時要在里面添加遠程倉庫,具體實現(xiàn)如下:

  • git clone URL 將一個倉庫克隆來的同時也具有推送的權(quán)限了浊猾,這時就可以使用git remote add origin URL來添加遠程倉庫了
  • 如果沒有使用clone的方法創(chuàng)建一個版本庫抖甘,那么先git init 然后git remote add origin URL 添加遠程倉庫,之后就是將本地倉庫和遠程倉庫對應(yīng)了葫慎,使用git pull origin master 來拉取遠程倉庫中內(nèi)容衔彻,當(dāng)然這也可以分兩步,使用如下:
  1. git fetch origin master 這是將遠程倉庫中的文件拉取到本地偷办,但是沒有與本地的master合并艰额,因此本地的master分支不能追蹤遠程倉庫中的分支
  1. git merge origin/master 將遠程倉庫和本地的master分支合并,那么就可以使用本地的master分支追蹤遠程倉庫了椒涯,這就完成了
  • 無論clone還是pull都只是拉取遠程的master分支柄沮,但是一般遠程倉庫中還有其他的分支,那么怎么辦呢?拉取遠程倉庫的次分支步驟如下:
  1. git checkout -b dev origin/dev 拉去遠程倉庫中的dev倉庫到本地的dev分支

想看更多文章請移步本人博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末祖搓,一起剝皮案震驚了整個濱河市狱意,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拯欧,老刑警劉巖详囤,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異镐作,居然都是意外死亡藏姐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門滑肉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來包各,“玉大人,你說我怎么就攤上這事靶庙∥食” “怎么了?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵六荒,是天一觀的道長护姆。 經(jīng)常有香客問我,道長掏击,這世上最難降的妖魔是什么卵皂? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮砚亭,結(jié)果婚禮上灯变,老公的妹妹穿的比我還像新娘。我一直安慰自己捅膘,他們只是感情好添祸,可當(dāng)我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寻仗,像睡著了一般刃泌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上署尤,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天耙替,我揣著相機與錄音,去河邊找鬼曹体。 笑死俗扇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的混坞。 我是一名探鬼主播狐援,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼钢坦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了啥酱?” 一聲冷哼從身側(cè)響起爹凹,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镶殷,沒想到半個月后禾酱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡绘趋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年颤陶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陷遮。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡滓走,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帽馋,到底是詐尸還是另有隱情搅方,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布绽族,位于F島的核電站姨涡,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吧慢。R本人自食惡果不足惜涛漂,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望检诗。 院中可真熱鬧匈仗,春花似錦、人聲如沸逢慌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涕癣。三九已至,卻和暖如春前标,著一層夾襖步出監(jiān)牢的瞬間坠韩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工炼列, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留只搁,地道東北人。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓俭尖,卻偏偏與公主長得像氢惋,于是被迫代替她去往敵國和親洞翩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,514評論 2 348

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

  • 第一次連接遠程倉庫的配置 1)配置user.name 和user.email git config --globa...
    四月不見閱讀 292評論 0 0
  • 文|又蓉 01 昨天朋友聯(lián)系我焰望,日常問候完就是開始細(xì)數(shù)最近遇到的讓人無語和煩惱的一些事情骚亿。我們都是生活里的普通人,...
    又蓉閱讀 3,476評論 2 0
  • 千金輕取美人心熊赖,狐裘爭奈世間寒来屠。 芙蓉帳外銀燭短,寶馬車?yán)锛拍L震鹉。 夢斷青春抱柱信俱笛,酒醒紅顏蝴蝶雙。 三千弱水憑飲...
    流明水閱讀 230評論 0 0
  • 由于要寫的新接口传趾,涉及到生成合法的身份證迎膜,以及MD5算法等,C用的不熟浆兰,于是嘗試用Java協(xié)議磕仅。 A機器裝...
    小靜默閱讀 983評論 0 0