GIT命令行的使用

来源:http://www.cnblogs.com/xueyao/archive/2016/03/27/5326889.html
-Advertisement-
Play Games

新手瞭解 有不對的地方指點下 首先, 瞭解下什麼是GIT,GIT是一款開元的分散式版本控制工具, 在世界上的所有分散式版本控制工具中,GIT是最簡單,最流行,同時也是最常用的 相比於其他版本的控制工具而言,GIT也有著自己的特點 舉個例子,GIT與集中式版本控制中的SVN相比來說,區別主要在於以下幾 ...


新手瞭解 有不對的地方指點下

首先, 瞭解下什麼是GIT,GIT是一款開元的分散式版本控制工具, 在世界上的所有分散式版本控制工具中,GIT是最簡單,最流行,同時也是最常用的

相比於其他版本的控制工具而言,GIT也有著自己的特點

舉個例子,GIT與集中式版本控制中的SVN相比來說,區別主要在於以下幾點:

1 很多情況下, git的速度遠遠比SVN快

2 SVN是集中式管理, git是分散式管理

3 SVN使用分支比較笨拙, git可以輕鬆擁有無限個分支

4 SVN必須聯網才能工作, git支持本地版本的控制工作

5 舊版本的SVN會在每一個目錄置放.svn, git只會在根目錄下擁有一個.git

 

集中式版本控制

分散式版本控制

 

話不多說 回到主題上,命令行實現個人開發,和團隊開發的GIT使用

因為涉及到隱藏文件的顯示,所以實現打開隱藏文件的顯示

全部顯示
defaults write com.apple.finder AppleShowAllFiles -bool true
全部隱藏
defaults write com.apple.finder AppleShowAllFiles -bool false

個人開發演練的代碼

1.進入到所需工作的目錄, 並且初始化一個代碼倉庫 

lanoudeMac-mini-5:~ lanou$ cd /Users/lanou/Desktop/GIT演練/個人開發 
lanoudeMac-mini-5:個人開發 lanou$ git init
Initialized empty Git repository in /Users/lanou/Desktop/GIT演練/個人開發/.git/

 2.需要給GIT倉庫配置一個用戶名和郵箱,如果不配置的話,會自動設置你的用戶名為電腦用戶名,郵箱為電腦用戶名@apple.com,因為後面涉及到針對用戶的管理,所以需要

設置用戶名

lanoudeMac-mini-5:個人開發 lanou$ git config user.name "weiboqy"
lanoudeMac-mini-5:個人開發 lanou$ git config user.email "[email protected]"
lanoudeMac-mini-5:個人開發 lanou$ 

設置好後並沒用任何的顯示,可以在工作目錄下的/.git/config文件中查看自己輸入的用戶名和郵箱是否存在

3.初始化代碼

lanoudeMac-mini-5:個人開發 lanou$ touch main.m
lanoudeMac-mini-5:個人開發 lanou$ git add main.m

touch main.m的作用是在工作目錄之下,.git目錄之外創建一個main.m文件 ,這個文件我們用來實驗

git add main.m 作用是 將工作區的代碼 添加到暫緩區中

lanoudeMac-mini-5:個人開發 lanou$ touch main.m
lanoudeMac-mini-5:個人開發 lanou$ git add main.m
lanoudeMac-mini-5:個人開發 lanou$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   main.m(綠色)

lanoudeMac-mini-5:個人開發 lanou$ touch main.h
lanoudeMac-mini-5:個人開發 lanou$ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   main.m(綠色)

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	main.h(紅色)

lanoudeMac-mini-5:個人開發 lanou$ 

 4.git status 查看文件的狀態

Untracked files(紅⾊色⽂文件):新添加的⽂文件或者新修改的⽂文件在⼯工作區中,沒有被添加到暫 緩區.
Changes to be committed(綠⾊色):將⼯工作區的代碼已經添加到暫緩區中,可以被提交到 代碼倉庫中了 

這時候需要瞭解下GIT的幾個核心概念了

工作區:工作文件夾(倉庫文件夾)除.git目錄以外的內容

版本庫:.git目錄,用於存儲記錄版本信息

暫緩區(stage)

分支(master):git自動創建的第一個分支

git add:把文件修改添加到暫緩區

git commit:把暫緩區的所有內容提交到當前的分支

5.修改文件

lanoudeMac-mini-5:個人開發 lanou$ open main.m
lanoudeMac-mini-5:個人開發 lanou$ 

open main.m  直接打開,修改好之後保存 git add main.m 添加到暫緩區

如果一個一個文件 添加到暫緩區會比較麻煩, git add . 可以講工作區的所有文件到添加到暫緩區

6.給git命令起別名

lanoudeMac-mini-5:個人開發 lanou$ git config alias.st "status"
lanoudeMac-mini-5:個人開發 lanou$ git config alias.ci "commit -m"
lanoudeMac-mini-5:個人開發 lanou$ 

如果每次都是輸入很長的命令,會比較麻煩,所以這就有了別名的存在

git config alias.別名 "本來的命令代碼"

相比於這樣而已,會有很大的便利之處

7.查看歷史版本

lanoudeMac-mini-5:個人開發 lanou$ git log
commit 503c029c159acb0caa86a178715b1193733b2e34
Author: weiboqy <[email protected]>
Date:   Sun Mar 27 20:10:34 2016 +0800

    main.m
lanoudeMac-mini-5:個人開發 lanou$ git reflog
503c029 HEAD@{0}: commit (initial): main.m
lanoudeMac-mini-5:個人開發 lanou$ 

如果想查看歷史版本的話,必須要將文件提交到分支中,也就是git commit命令

查看歷史版本有兩種方式,如上行所示,當歷史版本較多時,建議使用git reflog

GITde 版本號是有sha1加密演算法生成的40位哈希值,所以非常複雜。。

那為什麼有歷史版本的作用呢,比如說,現在使用的文件被我用炸了,沒有太好的辦法進行恢復,那麼我只需要回退到某一個時期的歷史版本就迎刃而解.

8.歷史版本回退

lanoudeMac-mini-5:個人開發 lanou$ git reset —hard HEAD //回退到當前,但還沒有上傳到分支的版本
//不做解釋了,因為版本數目不夠
git reset —hard HEAD^   //回退到前一個版本
git reset —hard HEAD^^  //回退到前一個的前一個版本
git reset —hard HEAD~100 git reset —hard 版本號前7位   //會退到前100個版本

團隊開發演練的代碼

 

團隊開發可以使用文件夾/GitHub/oschina來進行代碼共用

1.文件夾共用

如果所示的關係,weibo作為代碼共用庫

所以先創建好weibo的倉庫, 成為代碼共用庫

lanoudeMac-mini-5:weibo lanou$ cd /Users/lanou/Desktop/GIT演練/團隊開發/代碼共用庫/weibo 

lanoudeMac-mini-5:weibo lanou$ git init --bare

git init --bare, 成為代碼共用庫, 因為是成為代碼的共用庫,所以不能是簡單的gie init

2.項目經理將代碼共用庫的內容克隆下來(clone)

lanoudeMac-mini-5:項目經理 lanou$ git clone /Users/lanou/Desktop/GIT演練/團隊開發/代碼共用庫/weibo/

3.項目經理初始化項目

創建一個忽略⽂文件: 在和.git等級⺫⽬目錄下創建⼀一個.gitignore⽂文件,在該⽂文件中指定需要忽略的⽂文件 

在GitHub搜索.gitignore排名第一的就是 或者可以去https://github.com/github/gitignore/blob/master/Objective-C.gitignore查看OC需要忽略 的內容,將內容填寫到. gitignore中

4.將.gitignore添加到暫緩區並提交到分支

git add .

git commit -m "註釋"

5.創建項目

 不能在項目經理目錄下的微博下創建項目,因為已經包含了 Git repository,所以要返回到上一個目錄下創建

 在使用完畢之後 都要遵循以下一個順序

修改代碼—>git commit(提交到本地) —>git push (上傳到伺服器)

在使用前都需要pull下,以便別人修改了你沒有看到

如果有其他人需要加入開發,需要git clone 共用代碼庫的地址

需要註意的是 代碼衝突,以及storyboard的衝突問題

建議在團隊合作的時候 不要使用storyboard, 尤其是共用一個storyboard,特別容易發生衝突, 哪怕是移動storyboard的位置。

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、什麼是響應式 隨著移動端越來遇火 網站的佈局成為一個熱議的話題 有的人喜歡用手機瀏覽網站、有的人喜歡用paid瀏覽網站、有人喜歡用電腦瀏覽網站 那麼問題來了 我們怎麼樣才能使用一套css樣式 完成三種終端的適配呢 萬維組織(W3c)朝思暮想 終於提出了一種可以相容各個終端的頁面佈局樣式語法 交給 ...
  • 一、asp語言和PHP語言 首先製作一個頭部文件head.asp,或者一個底部文件foot.asp。如主頁是index.asp,調用頭部代碼是在index.asp文件代碼的開始位置(第一個標記後面,<head>標記前面)增加如下代碼: 調用共用底部文件代碼是在index.asp文件代碼的結束位置(最 ...
  • 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <style> 5 div 6 { 7 width:100px; 8 height:100px; 9 background:yellow; 10 transition:width 2s; 11 -moz-transition ...
  • 上文《詳解Javascript的繼承實現》介紹了一個通用的繼承庫,基於該庫,可以快速構建帶繼承關係和靜態成員的javascript類,好使用也好理解,額外的好處是,如果所有類都用這種庫來構建,還能使代碼在整體上保持一致的風格,便於其它同事閱讀和理解。在寫完該文之後,這兩天時不時都在思考這個庫可能存在... ...
  • 對於H5來說,canvas可以說是它最有特色的一個地方了,有了它之後我們可以隨意的在網頁上畫各種各樣的圖形,做一些小游戲啊什麼的。canvas這個標簽的用法,在網上也有特別多的教程了,這裡就不作介紹了。今天我們就用canvas來做一個小小的時鐘。完整的代碼在這裡https://github.com/ ...
  • × 目錄 [1]首行縮進 [2]水平對齊 [3]字間隔[4]字母間隔[5]文本轉換 [6]文本修飾 前面的話 CSS文本樣式是相對於內容進行的樣式修飾。由於在層疊關係中,內容要高於背景。所以文本樣式相對而言更加重要。有些人對文本和字體樣式之間的不同不太瞭解,簡單地講,文本是內容,而字體則用於顯示這個 ...
  • 將瀏覽器預設的下拉框樣式清除,然後應用上自己的,再附一張向右對齊小箭頭的圖片即可。 IE8/9並不支持 appearance:none CSS屬性,想要支持的話可能需要非常特殊的方法,參考SF: 我們需要為其添加一個父容器,容器是用來覆蓋小箭頭的,然後為select添加一個向右的小偏移或者寬度大於父 ...
  • 首先我要解釋一下標題的意義,日期的簡潔格式展示,之所以簡介,是因為讓人一目瞭然,不需要思考是什麼時候。 在詳細一點就是我們在微信朋友圈中 所看到的時間格式。 例如:剛剛 -幾分鐘前-幾小時前等等。 今天這裡帶來的是一個簡單的類別。 方便實用。 以及簡單的實際應用。 先看看一看類別是什麼樣子的 .h ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...