【Git 技術(shù)椄绰。】- git基礎(chǔ)教程

閱讀原文-關(guān)注我的技術(shù)博客

一、Git基本原理圖

二邮屁、Git基礎(chǔ)操作

  • 配置用戶名和郵箱 :
// 全局配置 
$ git config --global user.name "Your Name"
$ git config --global user.email "Your@example.com"
// 一次性配置
$ git config user.name "Your Name"
$ git config user.email "Your@example.com"
  • 創(chuàng)建版本庫:
// 創(chuàng)建本地倉庫目錄
$ mkdir [local_repository_name]
        
// 進(jìn)入創(chuàng)建的目錄
$ cd [local_repository_name]
        
// 初始化當(dāng)前目錄為Git本地倉庫
$ git init
        
//  新建一個目錄,將其初始化為 Git 代碼庫(與上面三個命令等價)
$ git init [project-name]

// 下載一個項目和它的整個代碼歷史
$ git clone [url]
  • 添加到本地暫存區(qū)(Index / Stage):
// 添加當(dāng)前目錄的所有文件到暫存區(qū)
$ git add .
        
//  添加指定文件到暫存區(qū)
$ git add [file1] [file2] ...
        
//  添加指定目錄到暫存區(qū)污茵,包括子目錄
$ git add [dir]
  • 添加到本地倉庫(Repository):
$ git commit -m "[Your update information]"
  • 版本回退:
// 回到當(dāng)前版本
$ git reset --hard HEAD 
    
// 回退一個版本
$ git reset --hard HEAD^
    
// 回退連個版本 
$ git reset --hard HEAD^^ 
    
// 回退N個版本
$ git reset --hard HEAD~N 

// 回退任意版本
$ git reset --hard [commit_id]
  • 起別名 :
// 起別名語法
$ git config alias.[new_name] "[old_name]"
    
// cimmit起別名
$ git config alias.ci commit  給 commit 起一個別名叫 ci
    
// "commit -m"起別名
$ git config alias.ci "commit -m"  給commit起個別名 ci
    
// 喪心病狂的給 git log 起一個NB的別名
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

二樱报、Git分支與合并操作

  • 重命名本地分支 :
$ git branch -m [old__branch_name] [new_branch_name]
  • 切換本地分支 :
$ git checkout [branch_name]
  • 創(chuàng)建分支 :
$ git branch [branch_name]
  • 創(chuàng)建并切換到創(chuàng)建的分支 :
$ git branch -b [branch_name]
  • 查看分支 :
// 1. 查看所有分支 
$ git branch -a
            
// 2. 查看本地分支 
$ git branch 
        
// 3. 所有遠(yuǎn)程分支
$ git branch -r
  • 推送本地分支[local-branch]到遠(yuǎn)程分支[remote-branch]并建立關(guān)聯(lián)關(guān)系 :
// 1. 遠(yuǎn)程已有分支,并且已經(jīng)關(guān)聯(lián)本地分支且本地已經(jīng)切換到要推送的分支
$ git push

// 2. 遠(yuǎn)程已有分支,但未關(guān)聯(lián)本地分支且本地已經(jīng)切換到要推送的分支
$ git push -u origin/[remote-branch]

// 3. 遠(yuǎn)程沒有分支并,本地已經(jīng)切換到要推送的分支
$ git push origin [local-branch]:[remote-branch]
  • 刪除分支:
// 刪除本地分支
$ git branch -d [branch-name]

// 刪除遠(yuǎn)程分支
$ git push origin --delete [branch-name]
  • 合并某分支到當(dāng)前分支:
git merge [name]

三泞当、Git標(biāo)簽操作

  • 查看標(biāo)簽tag:
// 列出所有 tag
$ git tag

// 查看 tag 信息
$ git show [tag name]
  • 新建標(biāo)簽tag:
// 新建一個 tag 在當(dāng)前 commit id
$ git tag [tag name]

// 新建一個 tag 在指定 commit id
$ git tag [tag name] [commit id]

// 新建一個分支迹蛤,指向某個 tag
$ git checkout -b [branch] [tag]
  • 提交標(biāo)簽tag:
// 提交指定標(biāo)簽到遠(yuǎn)程
$ git push origin [tag]

// 提交所有 tag
$ git push origin --tags
  • 新建標(biāo)簽tag:
// 刪除本地倉庫標(biāo)簽 
$ git tag -d [tag name]

// 刪除遠(yuǎn)程倉庫標(biāo)簽 
$ git tag -d [tag name] // 先刪除本地
$ git push origin :refs/tags/[tag name]// 刪除遠(yuǎn)程

四、Git遠(yuǎn)程倉庫配置

  • 生成本地rsa秘鑰:
// 1. github/gitlab 生成rsa 的命令
$ ssh-keygen -t rsa -C "注冊的github(gitlab)郵箱"
    
// 2. coding/gitCafe 生成rsa 的命令
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

1 根據(jù)不同平臺終端執(zhí)行上面命令,Enter襟士。

2 終端提示Enter file in which to save the key (/Users/Macro/.ssh/id_rsa):

3 注意,對生成定的秘鑰進(jìn)行重命名,輸入名稱:name_rsa,Enter盗飒。

4 然后輸入密碼 密碼可以為空(推薦為空),Enter。

  • 獲取本地rsa秘鑰:
$ open name_rsa.pub  
// 或者
$ cat name_rsa.pub
復(fù)制私鑰添加到對應(yīng)平臺的 sshkey 中
  • 多平臺賬號配置:
$ cd ~/.ssh
$ touch config
按照以下格式添加配置文件

Host git.coding.net // host網(wǎng)址

User xxxx@email.com // 用戶郵箱

PreferredAuthentications publickey // 不變

IdentityFile ~/.ssh/coding_rsa // 生成的非默認(rèn)地址的公鑰存放點

  • 檢測是否連接成功:
$ ssh -T git@github.com     // github 
$ ssh -T git@gitlab.com    // gitlab
$ ssh -T git@git.coding.net // coding

四陋桂、.gitignore 規(guī)則

在git中如果想忽略掉某個文件逆趣,不讓這個文件提交到版本庫中,可以使用修改根目錄中 .gitignore 文件的方法(如無嗜历,則需自己手工建立此文件)宣渗。這個文件每一行保存了一個匹配的規(guī)則例如:

 # 此為注釋 – 將被 Git 忽略
*.a               # 忽略所有 .a 結(jié)尾的文件
!lib.a            # 但 lib.a 除外
/TODO       # 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
build/      # 忽略 build/ 目錄下的所有文件
doc/*.txt   # 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt

規(guī)則很簡單梨州,不做過多解釋痕囱,但是有時候在項目開發(fā)過程中,突然心血來潮想把某些目錄或文件加入忽略規(guī)則暴匠,按照上述方法定義后發(fā)現(xiàn)并未生效鞍恢,原因是.gitignore只能忽略那些原來沒有被track的文件,如果某些文件已經(jīng)被納入了版本管理中每窖,則修改.gitignore是無效的帮掉。那么解決方法就是先把本地緩存刪除(改變成未track狀態(tài)),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

Xcode swift 標(biāo)準(zhǔn)
https://github.com/github/gitignore/blob/master/Swift.gitignore

參考文章:

Git忽略規(guī)則及.gitignore規(guī)則不生效的解決辦法

廖雪峰Git教程

常用 Git 命令清單

你需要知道的12個Git高級命令

幾年的Git使用技巧總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窒典,一起剝皮案震驚了整個濱河市蟆炊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌崇败,老刑警劉巖盅称,帶你破解...
    沈念sama閱讀 222,378評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異后室,居然都是意外死亡缩膝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,970評論 3 399
  • 文/潘曉璐 我一進(jìn)店門岸霹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疾层,“玉大人,你說我怎么就攤上這事贡避⊥蠢瑁” “怎么了予弧?”我有些...
    開封第一講書人閱讀 168,983評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長湖饱。 經(jīng)常有香客問我掖蛤,道長,這世上最難降的妖魔是什么井厌? 我笑而不...
    開封第一講書人閱讀 59,938評論 1 299
  • 正文 為了忘掉前任蚓庭,我火速辦了婚禮,結(jié)果婚禮上仅仆,老公的妹妹穿的比我還像新娘器赞。我一直安慰自己,他們只是感情好墓拜,可當(dāng)我...
    茶點故事閱讀 68,955評論 6 398
  • 文/花漫 我一把揭開白布港柜。 她就那樣靜靜地躺著,像睡著了一般咳榜。 火紅的嫁衣襯著肌膚如雪夏醉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,549評論 1 312
  • 那天涌韩,我揣著相機(jī)與錄音授舟,去河邊找鬼。 笑死贸辈,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肠槽。 我是一名探鬼主播擎淤,決...
    沈念sama閱讀 41,063評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秸仙!你這毒婦竟也來了嘴拢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,991評論 0 277
  • 序言:老撾萬榮一對情侶失蹤寂纪,失蹤者是張志新(化名)和其女友劉穎席吴,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捞蛋,經(jīng)...
    沈念sama閱讀 46,522評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡孝冒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,604評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拟杉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片庄涡。...
    茶點故事閱讀 40,742評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖搬设,靈堂內(nèi)的尸體忽然破棺而出穴店,到底是詐尸還是另有隱情撕捍,我是刑警寧澤,帶...
    沈念sama閱讀 36,413評論 5 351
  • 正文 年R本政府宣布泣洞,位于F島的核電站忧风,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏球凰。R本人自食惡果不足惜狮腿,卻給世界環(huán)境...
    茶點故事閱讀 42,094評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弟蚀。 院中可真熱鬧蚤霞,春花似錦、人聲如沸义钉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,572評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捶闸。三九已至夜畴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間删壮,已是汗流浹背贪绘。 一陣腳步聲響...
    開封第一講書人閱讀 33,671評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留央碟,地道東北人税灌。 一個月前我還...
    沈念sama閱讀 49,159評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像亿虽,于是被迫代替她去往敵國和親菱涤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,747評論 2 361

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

  • 本文為 Git教程的學(xué)習(xí)筆記洛勉,教程源自廖雪峰的博客粘秆。這是一個由淺入深,學(xué)完后能立刻上手的Git教程收毫。另攻走,附上另一本...
    七弦桐語閱讀 6,252評論 5 47
  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,665評論 9 163
  • 我們在js語法基礎(chǔ)上已經(jīng)提到過數(shù)組,該篇文章把它單拿出來細(xì)細(xì)品味一番(畢竟這個大哥在以后的開發(fā)過程中是隨處可見的-...
    張Boy閱讀 266評論 0 0
  • 這是很久以來一直在我大腦中盤旋的問題。但是因為我自己的人生還剛剛開始引润,我對這個問題其實沒有什么發(fā)言權(quán)巩趁。我之所...
    Grace小臭閱讀 2,853評論 6 15
  • Yarn本質(zhì)及機(jī)制 Yarn是一個資源管理和調(diào)度的框架.主要進(jìn)程包括:ResourceManager,NodeMa...
    終生學(xué)習(xí)丶閱讀 464評論 0 1