Mac OS Git 安裝

一、Git是一個分布式的代碼版本管理工具。類似的常用工具還有SVN,CVS。最大的特點也是優點在于提供分布式的代碼管理

1、分支代碼只有一份!

使用過svn的童鞋想必都知道,當我們要開發一個新功能或者增加一個新版本或者修改一個復雜bug的時候,通常需要copy整份代碼到本地一個目錄,然后添加到svn服務器上進行代碼管理。

而Git不同,Git可以創建許多branches,每個branch都是獨立的,當我們需要修改代碼的時候,commit也只是對本地倉庫的修改。如果使用SourceTree,我們會發現在工具欄的Git Flow功能,已經很好的為此做了準備。

2、log在本地!

svn的log都是存儲在服務器上的,當我們要查閱修改記錄的時候,必須要能夠連接上遠程服務器,并且具有權限。而Git不同,Git對于本地倉庫的修改記錄都是在本地上的,方便查閱。

3、合并代碼更加方便!

因為Git支持本地無限Branches,當我們個體在本地創建多個branches用于不同目的的時候(修改,新增,探索),合并一份代碼顯然要比svn合并一堆工程copy更加簡單。

4、更加安全!

Git的commit命令不同于SVN,commit只是對本地倉庫代碼的一次更新。當需要提交到master遠程倉庫,或者其他遠程分支倉庫的時候,需要使用push功能。雖然增加了一個過程,卻可以防止隨意修改導致后期合并出現大問題的風險。?在用戶工作的時候,從本地倉庫修改文件(modified),寫入git的暫存區域(staged),將暫存區域的內容提交到本地倉庫(committed)。這一系列的工作都是在用戶本機的本地倉庫上進行的。當你將本地的倉庫push到遠程服務器上的倉庫之前,遠程倉庫里是沒有你的工作成果的。

5、目錄更加簡潔!

在Git本地倉庫根目錄,只有一個.git文件,它包含了所有的管理信息。而SVN想必大家都知道,每個子目錄下都有噁心的.svn。這個當需要修改文件沖突等問題時,就需要考慮了。肯定是一個文件簡單。

?

二、安裝

在進行安裝前,要說一下,Git和SVN一樣,都需要創建一個服務器的,他們都可以創建自己的版本管理服務器。對于個人和小團隊來說,使用托管服務器可能更合適。

常見的有Github 和 Bitbucket。Github沒有個人免費倉庫使用,代碼放上去就是開源的。Bitbucket的個人倉庫相關頁面已經基本漢化了。注冊流程也比較簡單。

MAC上最好的GIT免費GUI工具是SourceTree(沒有之一)。此外,最好的GIT代碼開源網站是GitHub,最好的GIT代碼私有庫是BitBucket。

安裝過程:

1,下載Git installer,地址;http://git-scm.com/downloads

2,下載之后打開,雙擊.pkg安裝

3, 打開終端,使用git --version或者which git命令查看安裝版本,有就是安裝成功了

4,創建一個全球用戶名、全球郵箱

git config --global user.name "shengyao"

git config --global user.email "MY_NAME@example.com"

5、安裝成功后打開終端

cd ~進入根目錄

輸入命令ssh-keygen生成ssh-key,如果有提示,一直按回車

6、將SSH key添加到GitHub。登錄到GitHub頁面,Account Settings->SSH Public Keys->Add another key

將生成的key(id_rsa.pub文件)內容copy到輸入框中,save。

commd+shift+g進入/Users/chen/.ssh/就可以看得見私鑰和公鑰

私鑰的名字是 id_rsa,是服務器確定你身份的唯一憑證。

公鑰的名字是id_rsa.pub。把這個文件發給倉庫管理員,倉庫管理員會把這個公鑰放到服務器上,以后git就通過上面的私鑰跟服務器交互了。如果使用github就是自己把公鑰內容添加上去

7、找一個目錄執行git clone http://xxx.git(從服務器端克隆git庫,當然這個要服務器管理員給你權限和帳號),以后xxx目錄就是一個git目錄,可以在這個目錄下執行git操作

三、?linux基礎命令

sudo -s???獲取絕對用戶權限

cd xxx????進入xxx目錄

ls (-a/-A)???顯示當前路徑下所有文件(隱藏的)

pwd???????顯示當前絕對路徑

mkdir??xxx???創建文件夾xxx

man xxx?????查看xxx命令手冊

?

然后介紹下Git基礎命令的含義;

clone???克隆遠程倉庫

init???????初始化倉庫

remote?連接遠程倉庫

pull??????從遠程倉庫下拉獲取新數據

push????將本地倉庫新增或修改文件上傳到遠程倉庫

add?????添加文件或者修改文件,commit以及push之前使用

log??????當前倉庫提交過的日志信息

status??當前倉庫版本狀態

commit?提交到當前倉庫中

branch?分支命令,相關增刪查操作

checkout?使用遠程倉庫最后一個版本完全覆蓋當前倉庫內容/選擇分支branch

diff??????對比版本內容

merge???合并版本內容

?

?

?

?

參考:

https://help.github.com/articles/set-up-git/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249207.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249207.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249207.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kubeadm安裝k8s 1.13版本

一:環境初始化 1.關閉selinux,iptables 2.做好本地的dns解析,我這里用的是/etc/hosts 3.做一下免密傳輸 4. master:10.0.18.210 node1:10.0.18.211 node2:10.0.18.212 二:配置yum源 [rootmaster yum.repos.d]# vim kuberbetes.repo [kubernet…

MyBastis 三種批量插入方式的性能比較

數據庫使用的是MySQL,JDK版本1.8,運行在SpringBoot環境下 本文章源代碼:https://github.com/runbeyondmove/mybatis-batch-demo 對比3種可用的方式 1、反復執行單條插入語句2、xml拼接sql3、批處理執行 先說結論:少量插入請使用反…

JS對象與jQuery對象

JS對象大致可以分為三種,如下圖: JS常用內置對象(JS自身所持有的對象,不需要創建,直接可用): String:API跟java的字符串API大致相同 兩種創建對象的方式:String s1 “…

Vue-router 中hash模式和history模式的區別

Vue-router 中hash模式和history模式的關系 在vue的路由配置中有mode選項 最直觀的區別就是在url中 hash 帶了一個很丑的 # 而history是沒有#的 mode:"hash"; mode:"history"; hash模式和history模式的不同 對于vue這類漸進式前端開發框架&#xff0…

Nginx Slab內存管理

L38 Slub內存管理適用 ngx_http_limit_conn_module、ngx_http_limit_req_module 模塊場景 我們可以用阿里第三方模塊Slab_Stat模塊 并且用add-module 方式編譯進openresty中 轉載于:https://www.cnblogs.com/jackey2015/p/10684151.html

day2---while else

# -*- coding:utf-8 -*-while 條件&#xff1a;循環體終止循環 else&#xff1a; while else 解釋&#xff1a;當循環體中沒有被break打斷則會運行else&#xff0c;打斷則不會運行else# 例子 a 0 while a < 5:print(a)a 1break else:print(循環結束) # 0 轉載于:https:/…

jQuery中this與$(this)的區別總結

https://www.cnblogs.com/gfl123/p/8080484.html

2019前端必會黑科技之PWA

一、背景 從2018年到現在&#xff0c;作為號稱下一代web應用模型的PWA&#xff0c;逐漸成為了一個各大前端廠商爭先恐后進行涉足&#xff0c;布局的一個新的技術&#xff0c; 其主要的對標物Native app&#xff0c;作為現在最主流的mobile端應用&#xff0c;它的安全&#xff…

Tcpdump抓包工具的使用

# Tcpdump抓包工具的使用## 簡介tcpdump是linux下最常用的命令行抓包工具&#xff0c;可以在線安裝## 安裝- sudo apt install tcpdump## 查看網卡- ip addr查看網卡名稱## 簡單的使用示例- sudo tcpdump -i enp032 抓取指定網卡的數據包&#xff0c;并- sudo tcpdump -i enp03…

Node.js異步庫async

async的使用需要安裝第三方包 1.串行無關聯 async.series 函數依次執行,后面不需要調前面步驟的結果 程序執行時間為所有步驟之和 2.并行無關聯 async.paraller 某步出錯不影響其他步驟執行 程序執行時間為最長的那個時間 3.串行有關聯 async.waterfall 函數依次執行,后面需要…

Java技術棧---語言基礎

基礎語法 面向對象 接口 容器 異常 泛型 反射 注解 I/O

Mongodb 查詢時間類型

$where: this.CreateDate.toJSON().slice(0,13) "2019-04-04T05"轉載于:https://www.cnblogs.com/kevin1988/p/10685075.html

vue prop不同數據類型(數組,對象..)設置默認值

vue prop 會接收不同的數據類型&#xff0c;這里列出了 常用的數據類型的設置默認值的寫法,其中包含&#xff1a; Number, String, Boolean, Array, Function, Object refAge: { type: Number, default: 0 }, refName: { type: String, default: }, hotDataLoading: { typ…

正則表達式——基礎

正則表達式的基本符號使用&#xff1a; 1。基本符號&#xff1a; a . 匹配任意單個字符&#xff0c;如&#xff1a;.000就可以匹配到1000&#xff0c;2000&#xff0c;3000&#xff0c;a000,b000等。 b | 匹配滿足其中一個條件&#xff0c;如&#xff1a; 1000|2000|3000 可以…

談一談并查集QAQ(上)

最近幾日理了理學過的很多oi知識。。。發現不知不覺就有很多的知識忘記了。。。 在聊聊并查集的時候順便當作鞏固吧。。。。 什么是并查集呢? ( Union Find Set ) 是一種用于處理分離集合的抽象數據結構類型。 具體一點: 當我們給出兩個元素的一個無序對&#xff08;a,b&#…

vue的雙向綁定原理及實現

前言 使用vue也好有一段時間了&#xff0c;雖然對其雙向綁定原理也有了解個大概&#xff0c;但也沒好好探究下其原理實現&#xff0c;所以這次特意花了幾晚時間查閱資料和閱讀相關源碼&#xff0c;自己也實現一個簡單版vue的雙向綁定版本&#xff0c;先上個成果圖來吸引各位&a…

python后端將svc文件數據讀入數據庫具體實現

如何用python將svc文件的數據讀入到MySQL數據庫里&#xff0c;在此直接上代碼了&#xff0c;感興趣的朋友可以貼代碼測試&#xff1a; import pandas as pd import os from sqlalchemy import create_engine # 初始化數據庫連接&#xff0c;使用pymysql模塊 # MySQL的用戶&…

作業——8

這個作業屬于哪個課程C語言程序設計Ⅱ這個作業的要求在哪里C語言作業評價標準我在這個課程的目標是指針與字符串這個作業在哪個具體方面幫助我實現目標使用指針與字符串參考文獻指針和字符串&#xff08;基礎知識&#xff09;第七周作業 一 1 、使用函數刪除字符串中的字符 輸入…

Vue實現組件props雙向綁定解決方案

注意&#xff1a; 子組件不能直接修改prop過來的數據&#xff0c;會報錯 方案一&#xff1a; 用data對象中創建一個props屬性的副本 watch props屬性 賦予data副本 來同步組件外對props的修改 watch data副本&#xff0c;emit一個函數 通知到組件外 HelloWorld組件代碼如下…

統計詞頻問題

adict{} xinput().lower() #把單詞大寫字母改為小寫字母 for i in x:if i in [,,.,"",",!]:xx[:x.index(i)]x[x.index(i)1:] #把句子中的非字母字符用切片操作刪掉 asetset(x.split( )) #集合的好處在于不重復 alstx.split( ) for n in aset:tempdict{n:alst.…