Mac如何使用git以及github


  在介紹git之前先來介紹一下版本控制系統。

  版本控制系統分兩種:集中式、分布式。

  集中式:集中式版本控制系統,版本庫是集中存放在中央服務器的,而工作的時候用的都是自己的電腦,所有要先從中央服務器取得最新的版本,然后開始干活,干完活后,再把自己的干完的活推送給中央服務器。中央服務器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完后,再放回到圖書館。

  缺點:必須得聯網時才能工作,自己電腦上沒有服務器,只能請求網上的服務器獲得資源。常用的有SVN。

  分布式:分布事版本控制系統沒有中央服務器,每一個電腦上都是一個完整的版本庫,工作的時候都不需要聯網當兩個或者兩個以上的人分別修改了不同的文件的時候,只需要把各自修改的內容推送給對方即可,就互相看到對方的修改了。安全性高,只要有一台電腦沒有壞,就能重新得到完整的版本庫,不會跟集中式的一樣,中央服務器炸了就什么都沒有了。

  接下來我們來介紹一下git,git是一款開源的分布是版本控制工具,在世界上所有的分布式版本控制工具中,git是最快、最簡單、最流行的。git的作者是Linux之父(Linus Benedict Torvalds),當初開發git的時候僅僅是為了輔助Linux內核的開發(管理源代碼)。git在國外已經非常普及了,但是在國內還在普及中。現在已經有越來越多的開源項目轉移到了git上面。常見的是github,國內是oschina。

  首先,我們先打開終端,在終端輸入:cd /Users/empty/Desktop/git(把你要進入的文件夾拖進去,路勁就能自己出來),然后敲擊回車,就能進入到這個目錄下面。進入文件后,在終端輸入:git init  敲擊回車,這樣就創建好了代碼倉庫。


  從上面的圖片可以看出,已經創建了一個空的代碼倉庫。這個時候,點開git文件夾是看不到東西的,因為.git是隱藏文件,看不到的,要看的話需要讓隱藏文件顯示出來,在終端輸入:defaults write com.apple.finder AppleShowAllFiles -bool true 敲擊回車之后,按住optional+command+Esc,然后把Finder重啟下,再次打開git文件夾,就能看到隱藏的文件了。接下來我們就需要給git倉庫配置一個用戶名和郵箱了,在終端輸入:git config user.name "你的用戶名"  敲擊回車,如果什么都沒有跳出來那就對了,說明已經配置進去了,然后再輸入:git config user.email "你的郵箱"  一樣,也是敲擊回車,還是什么都沒有跳出來,接下來進入到git文件夾里面,找到config,打開它就能看到你剛剛輸入的用戶名信息和郵箱了。

  回到我們的終端,確保進入的是git的文件夾,然后我們要創建一點東西,在終端輸入:touch main.m,然后打開它,輸入:open main.m,進入到main.m里面,在里面隨便輸入一點東西,保存一下關閉。在終端輸入:git status,敲回車,我們可以看到有一個紅色的main.h,這是因為沒有添加到暫緩區內,所以我們需要把mian.m給添加到暫緩區,在終端輸入:git add main.m,敲擊回車后我們再次輸入git status,敲擊回車,我們看到的main.m就變成了綠色,不再是紅色的了,還出現了一句英文"Changes to be committed",這就說明已經把代碼添加到了暫緩區了。然后我們需要把代碼提交上去,在終端輸入:git commit -m "修改內容的介紹",敲擊回車之后就把暫緩區的所有內容提交到當前分支了。

  

// 查看歷史版本,git版本號是由sha1(加密算法)生成的一個40位的哈希值
git log
git reflog

// 終端輸入這個代碼敲擊回車后用git lg查看,就能看到有色彩的歷史版本
"log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"   

// 使用下面回退版本的方法,需要多次修改mian.m文件的內容,並且添加並提交
// 回到當前版本,放棄所有沒有提交的修改
 git reset --hard HEAD
// 回到上一個版本
 git reset --hard HEAD^
// 回到之前第3個修訂版本
 git reset --hard HEAD~3
// 回到指定版本號的版本
 git reset --hard e695b67(版本號前七位)

// 查看分支引用記錄
 git reflog

配置全局用戶名和郵箱

git config --global user.name "你的用戶名"

git config --global user.email "你的郵箱"

 

  github

  熟悉了一下如何使用git的基本用法之后我們需要來學習一下如何使用github,首先我們需要進入到github的官網:https://github.com,如果你還沒有賬號,那么就需要注冊一個賬號了,注冊完畢后,可以進入github的官網,可以看到右上角有一個+號,點擊加號然后點擊New repository,就會進入到我們創建項目的頁面。不要點擊下面的New organization,那是創建團隊的。

                                      

按照上面這張圖,全部填寫完畢之后,就算是創建好了一個倉庫,接下來我們就需要把我們的鑰匙添加到github上面。點擊網頁右上角你的頭像,然后點擊Settings。

  然后點擊SSH keys,如果你已經有看key那就不需要再次創建,如果沒有key,那么就打開終端,SSH是一種傳輸代碼的方法,速度快又安全。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議,在終端中輸入 ssh-keygen -t rsa -C "你注冊賬號時用的郵箱",敲擊回車, 使用該命令之后, 會出現提示選擇ssh-key生成路徑, 這里直接點回車默認即可, 生成的ssh-key在默認路徑中,這里我們不使用密碼進行登錄, 用密碼太麻煩,就一路回車下去如果你看到下圖的效果,說明已經生成完畢了。

 

 生成好key之后,在mac os X 下前往文件夾,/Users/自己電腦用戶名/.ssh,然后用記事本打開id_rsa.pub,將里面的全部代碼復制,回到網頁,點擊New SSH keys,黏貼你的key,並取名字,然后創建,這樣就添加好了一個keys。

  如果你是iOS的程序員,那么就繼續聽完,打開Xcode,command+逗號,進入偏好設置,然后點擊Accounts,在左下角點擊那個+號,選擇Add Repository.. , 在Address輸入你之前創建的項目的網址,在UserName填寫你的github用戶名,Password寫你的github的密碼,好了之后我們點擊Add,如果密碼正確,我們就添加完了。然后關閉Xcode,再次打開,不要點擊create a new Xcode project,選擇Check out an existing project,然后選擇你剛才創建的地址,點擊next,選擇你要放置的文件夾,然后一路回車到底就好了。

    修改完畢后,你想提交,那么可以在Xcode里面提交,也可以在終端提交,Xcode提交很簡單,找到最上面的那條,選擇Source Control,里面有commit push pull,選擇commit的時候可以勾選push,就可以直接提交了,不過用Xcode不太好,個人喜歡用終端傳。

// 將本地傳送至github
git remote add origin https://github.com/yourname/test.git  
git push -u origin master  

// 從現有倉庫克隆
git clone git://github.com/yourname/test.git
git clone git://github.com/yourname/grit.git mypro#克隆到自定義文件夾

git add *#跟蹤新文件

rm *&git rm *#移除文件
git rm -f *#移除文件
git rm --cached *#取消跟蹤
git mv file_from file_to#重命名跟蹤文件

git log#查看提交記錄

git commit#提交更新
git commit -m 'message'
git commit -a#跳過使用暫存區域,把所有已經跟蹤過的文件暫存起來一並提交
git commit --amend#修改最后一次提交

git reset HEAD *#取消已經暫存的文件

git checkout -- file#取消對文件的修改(從暫存區去除file)
git checkout branch|tag|commit -- file_name#從倉庫取出file覆蓋當前分支
git checkout -- .#從暫存區去除文件覆蓋工作區



git branch#列出本地分支
git branch -r#列出遠端分支
git branch -a#列出所有分支
git branch -v#查看各個分支最后一個提交對象的信息
git branch --merge#查看已經合並到當前分支的分支
git branch --no-merge#查看為合並到當前分支的分支

git branch test#新建test分支
git checkout test#切換到test分支
git checkout -b test#新建+切換到test分支
git checkout -b test dev#基於dev新建test分支,並切換

git branch -d test#刪除test分支
git branch -D test#強制刪除test分支

git merge test#將test分支合並到當前分支
git rebase master#將master分之上超前的提交,變基到當前分支

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM