Git命令使用手冊

一着裹、安裝工具(windows環(huán)境)

git工具

Git-2.22.0-64-bit.exe下載:https://git-scm.com/downloads
TortoiseGit-2.8.0.0-64bit.msi下載:https://tortoisegit.org/download/

安裝TortoiseGit出現(xiàn)錯(cuò)誤:2502/2503錯(cuò)誤


2503

解決辦法:


以管理員身份運(yùn)行

以管理員身份運(yùn)行打開命令提示符茫负,輸入msiexec /package “安裝包路徑”破停,回車翅楼,就直接進(jìn)入安裝頁面,按步驟安裝即可真慢。比如:

msiexec /package “D:\download\TortoiseGit-2.8.0.0-64bit.msi”

配置git.exe毅臊,選擇git.exe,check黑界,安裝完成管嬉。

Android studio配置git:
File->setting->Version Control->GitHub


設(shè)置GitHub賬號

點(diǎn)擊test驗(yàn)證連接是否成功皂林。

二、設(shè)置git賬號和相關(guān)屬性
鼠標(biāo)右鍵打開Git Base Here
git version 查看版本信息
git help 查看幫助

1.配置name 和 email
git config --global user.name "wuhuihui_home"


配置

2.創(chuàng)建一個(gè)目錄: mkdir 目錄名
跳轉(zhuǎn)到當(dāng)前目錄:cd 目錄名
顯示當(dāng)前目錄: pwd

wuhuihui@PC-201812110149 MINGW64 /d/testgit
$ git init Initialized empty Git repository in d:/testgit/
//這樣就在d:/testgit/目錄下自動(dòng)生成.git文件夾蚯撩,再在該目錄下新建readme.txt础倍,并輸入“測試”保存,開始添加和提交readme.txt文件
wuhuihui@PC-201812110149 MINGW64 /d/testgit
$ git add readme.txt

wuhuihui@PC-201812110149 MINGW64 /d/testgit (master)
$ git commit -m "readme.txt" //日志信息
[master (root-commit) 8265127] readme.txt
 1 file changed, 1 insertion(+)
 create mode 100644 readme.txt

wuhuihui@PC-201812110149 MINGW64 /d/testgit (master)

3.查看文件狀態(tài):git status
查看文件的不同:git diff


image.png

4.修改文件胎挎,在readme.txt文件中增加換行輸入“1111”
提交修改后的文件需要先add沟启,再commit
git add命令實(shí)際上就是把要提交的所有修改放到暫存區(qū)(Stage),而git commit 命令則是一次性把暫存區(qū)里面的東西一次性提交到分支(master),所以 git commit 只是負(fù)責(zé)把暫存區(qū)里面的東西提交犹菇。
git diff HEAD -- readme.txt命令可以查看工作區(qū)和版本庫里面最新版本的區(qū)別

修改后提交

5.查看提交版本日志:git log


查看版本日志

6.版本回退:git reset

wuhuihui@PC-201812110149 MINGW64 /d/testgit (master)
$ git reset --hard HEAD^
HEAD is now at 8265127 readme.txt //回退完成德迹,顯示當(dāng)前版本首id

^怎么輸入:切換到英文輸入法,shift+6
回退到上一個(gè)版本揭芍,回退上上一個(gè)版本^胳搞,以此類推,如果要回退到1000個(gè)版本之前用$ git reset --hard HEAD~1000
版本回退后称杨,log日志僅保存到當(dāng)前版本

那么此時(shí)readme.txt的內(nèi)容成了“測試”

如果界面沒有清空肌毅,可以通過git reflog命令查看之前每次提交的記錄


查看每次提交的commitID

如果我們想要把剛回退的版本恢復(fù)到最后提交的版本,可以通過
命令: git reset --hard 版本號列另,回到指定版本號


恢復(fù)版本

那么此時(shí)readme.txt的內(nèi)容成了“測試 111”


恢復(fù)版本

用命令git reset HEAD <file>可以把暫存區(qū)的修改撤銷掉(unstage)芽腾,重新放回工作區(qū)

版本log 發(fā)生變化


版本log

當(dāng)文件已修改,但是文件沒有add页衙,想要回到修改前的內(nèi)容摊滔,使用命令:git checkout -- readme.txt 讓這個(gè)文件回到最近一次git commit或git add時(shí)的狀態(tài)

7.刪除文件rm file


刪除文件

rm file只是把緩存區(qū)的文件刪除,并沒有完全刪除店乐,在沒有commit前是可以通過git checkout命令恢復(fù)該文件艰躺。

git checkout -- test.txt

8.新建遠(yuǎn)程倉庫
①創(chuàng)建SSH Key。在C:\Users\Administrator\下眨八,看看有沒有.ssh目錄腺兴,如果有,再看看這個(gè)目錄下有沒有id_rsa和id_rsa.pub這兩個(gè)文件,如果已經(jīng)有了,可直接跳到下一步刘莹。如果沒有猪钮,打開Git Bash,創(chuàng)建SSH Key:

ssh-keygen -t rsa -C "youremail@163.com"

連著幾個(gè)回車


創(chuàng)建SSH Key
SSH Key文件生成

id_rsa和id_rsa.pub兩個(gè)文件是SSH Key的秘鑰對泵督,密鑰對最直觀的作用:讓你方便的登錄到 SSH 服務(wù)器,而無需輸入密碼。由于你無需發(fā)送你的密碼到網(wǎng)絡(luò)中没陡,SSH 密鑰對被認(rèn)為是更加安全的方式。id_rsa是私鑰,不能泄露出去盼玄,id_rsa.pub是公鑰贴彼,可以放心地告訴任何人。

②登錄GitHub:setting->


setting

SSH and GPG keys->new SSH Key->


new SSH Key

add new SSH keys->
title 隨意命名埃儿,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容
key

添加成功

Secure Shell (SSH) 是一個(gè)允許兩臺(tái)電腦之間通過安全的連接進(jìn)行數(shù)據(jù)交換的網(wǎng)絡(luò)協(xié)議器仗。通過加密保證了數(shù)據(jù)的保密性和完整性。SSH采用公鑰加密技術(shù)來驗(yàn)證遠(yuǎn)程主機(jī)童番,以及(必要時(shí))允許遠(yuǎn)程主機(jī)驗(yàn)證用戶青灼。

GitHub允許添加多個(gè)Key。如果需要在不同電腦提交妓盲,只要把每臺(tái)電腦的Key都添加到GitHub杂拨,就可以在每臺(tái)電腦上往GitHub推送了。

③在GitHub Create repository:testgit.git


Create repository

③添加遠(yuǎn)程庫origin

 git remote add origin https://github.com/wuhuihui2016/testgit.git

把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫

git push -u origin master

由于遠(yuǎn)程庫是空的悯衬,我們第一次推送master分支時(shí)弹沽,加上了-u參數(shù),Git不但會(huì)把本地的master分支內(nèi)容推送的遠(yuǎn)程新的master分支筋粗,還會(huì)把本地的master分支和遠(yuǎn)程的master分支關(guān)聯(lián)起來策橘,在以后的推送或者拉取時(shí)就可以簡化命令。

命令行
將本地文件push成功

那么初始化完成娜亿,現(xiàn)在開始本地提交通過命令: git push origin master就可以完成

在本地修改test.txt內(nèi)容丽已,增加文字


修改內(nèi)容

提交文件


提交文件并推送到GitHub

查看GitHub提交成功

④克隆項(xiàng)目到桌面:git clone https://github.com/wuhuihui2016/testgit.git

克隆

8.分支就像通道,通道多了买决,代碼提交互不影響沛婴,工作效率會(huì)提高
查看分支:git branch
創(chuàng)建分支:git branch <name>
切換分支:git checkout <name>
創(chuàng)建+切換分支:git checkout -b <name>
合并某分支到當(dāng)前分支:git merge <name>
刪除分支:git branch -d <name>

①創(chuàng)建分支whh

git branch whh  //創(chuàng)建分支whh
git checkout -b whh  //創(chuàng)建分支whh并切換
切換分支

此時(shí)分支指向whh,新建文件testwhh.txt督赤,輸入任意內(nèi)容嘁灯,使用add commit提交到當(dāng)前分支上


在分支上上傳文件

這時(shí)你會(huì)發(fā)現(xiàn),whh分支上包含有testwhh.txt三個(gè)文件躲舌,而master分支只有readme.txt test.txt兩個(gè)文件丑婿,這時(shí)我們需要合并分支:git merge <name>
切換到master分支,合并whh分支


合并分支

查看分支合并情況:git log --graph --pretty=oneline --abbrev-commit


查看分支合并情況

合并失敗出現(xiàn)問題時(shí)没卸,需要解決沖突問題羹奉。
合并完成后就可刪除whh了,其實(shí)就是刪除一個(gè)指針约计,指針master 和 whh 指的是同一個(gè)地方诀拭,所以可以刪除一個(gè)。
刪除分支whh:$ git branch -d whh

git log --graph命令查看分支合并圖

分支合并時(shí)通常會(huì)選擇快進(jìn)模式(Fast Forward)病蛉,但是刪除分支后會(huì)丟失分支信息炫加,那么需要保持刪除分支的信息,做一個(gè)新的提交(commit )铺然,采用 --no -ff 的方式合并分支(git merge)

 git merge --no-ff -m "git merger with no-ff mode" whh

查看遠(yuǎn)程庫的信息:git remote
推送主分支:git push origin master.
推送link分支:git push origin whh.

⑨標(biāo)簽:是版本庫的一個(gè)快照


打標(biāo)簽

使用命令看歷史記錄:git log --pretty=oneline --abbrev-commit


查看歷史紀(jì)錄

如果標(biāo)簽忘記打了俗孝,怎么辦?
只需要找到需要打標(biāo)簽的commit id ,id號為:68186aa


補(bǔ)打標(biāo)簽

git show <tagname> 查看標(biāo)簽詳細(xì)信息

創(chuàng)建帶說明的標(biāo)簽使用命令:git tag -a <name> -m <描述> <commit id>


創(chuàng)建帶說明的標(biāo)簽

刪除標(biāo)簽:git tag -d <tagname>


刪除標(biāo)簽

推送標(biāo)簽到遠(yuǎn)程魄健,使用命令:git push origin <tagname>


推送標(biāo)簽

推送所有未推送的標(biāo)簽:git push origin --tag

從遠(yuǎn)程刪除標(biāo)簽:git push origin :refs/tags/<tagname>


遠(yuǎn)程刪除標(biāo)簽

git的基本操作到這里就完成了赋铝。
參考文章:Git使用教程(Window)學(xué)習(xí)筆記 - 廣源的博客 - CSDN博客
https://blog.csdn.net/qq_36243942/article/details/81169913

每天進(jìn)步一點(diǎn)點(diǎn)(2019-06-13):
我的技術(shù)分享文集目錄 http://www.reibang.com/p/23485c157d76

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市沽瘦,隨后出現(xiàn)的幾起案子革骨,更是在濱河造成了極大的恐慌,老刑警劉巖析恋,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件良哲,死亡現(xiàn)場離奇詭異,居然都是意外死亡助隧,警方通過查閱死者的電腦和手機(jī)筑凫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來并村,“玉大人巍实,你說我怎么就攤上這事×梗” “怎么了棚潦?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長膝昆。 經(jīng)常有香客問我丸边,道長,這世上最難降的妖魔是什么荚孵? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任原环,我火速辦了婚禮,結(jié)果婚禮上处窥,老公的妹妹穿的比我還像新娘嘱吗。我一直安慰自己,他們只是感情好滔驾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布谒麦。 她就那樣靜靜地躺著,像睡著了一般哆致。 火紅的嫁衣襯著肌膚如雪绕德。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天摊阀,我揣著相機(jī)與錄音耻蛇,去河邊找鬼踪蹬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛臣咖,可吹牛的內(nèi)容都是我干的跃捣。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼夺蛇,長吁一口氣:“原來是場噩夢啊……” “哼疚漆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刁赦,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤娶聘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后甚脉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丸升,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年牺氨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了发钝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,090評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡波闹,死狀恐怖酝豪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情精堕,我是刑警寧澤孵淘,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站歹篓,受9級特大地震影響瘫证,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庄撮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一背捌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洞斯,春花似錦毡庆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至亚铁,卻和暖如春蝇刀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徘溢。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工吞琐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捆探,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓站粟,卻偏偏與公主長得像黍图,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子卒蘸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評論 2 355