1.遠程操作
1.1分布式版本控制系統
我們?前所說的所有內容(?作區,暫存區,版本庫等等),都是在本地!也就是在你的筆記本或者 計算機上。?我們的 Git 其實是分布式版本控制系統!什么意思呢?
可以簡單理解為,我們每個?的電腦上都是?個完整的版本庫,這樣你?作的時候,就不需要聯?
了,因為版本庫就在你??的電腦上。既然每個?電腦上都有?個完整的版本庫,那多個?如何協作 呢???說你在??電腦上改了?件A,你的同事也在他的電腦上改了?件A,這時,你們倆之間只需 把各?的修改推送給對?,就可以互相看到對?的修改了 分布式版本控制系統的安全性要?很多,因為每個?電腦?都有完整的版本庫,某?個?的電腦壞掉 了不要緊,隨便從其他?那?復制?個就可以了。
在實際使?分布式版本控制系統的時候,其實很少在兩?之間的電腦上推送版本庫的修改,因為可能 你們倆不在?個局域?內,兩臺電腦互相訪問不了。也可能今天你的同事病了,他的電腦壓根沒有開 機。因此,分布式版本控制系統通常也有?臺充當“中央服務器”的電腦,但這個服務器的作?僅僅 是?來?便“交換”?家的修改,沒有它?家也?樣?活,只是交換修改不?便?已。有了這個“中央服務器”的電腦,這樣就不怕本地出現什么故障了(?如運?差,硬盤壞了,上?的所有東西全部 丟失,包括git的所有內容)
1.2遠程倉庫
Git 是分布式版本控制系統,同?個 Git 倉庫,可以分布到不同的機器上。怎么分布呢?最早,肯定只 有?臺機器有?個原始版本庫,此后,別的機器可以 “克隆” 這個原始版本庫,?且每臺機器的版本 庫其實都是?樣的,并沒有主次之分。
你肯定會想,?少需要兩臺機器才能玩遠程庫不是?但是我只有?臺電腦,怎么玩?
其實?臺電腦上也是可以克隆多個版本庫的,只要不在同?個?錄下。不過,現實?活中是不會有? 這么傻的在?臺電腦上搞?個遠程庫玩,因為?臺電腦上搞?個遠程庫完全沒有意義,?且硬盤掛了 會導致所有庫都掛掉,所以我也不告訴你在?臺電腦上怎么克隆多個倉庫。
實際情況往往是這樣,找?臺電腦充當服務器的??,每天24?時開機,其他每個?都從這個“服務 器”倉庫克隆?份到??的電腦上,并且各?把各?的提交推送到服務器倉庫?,也從服務器倉庫中 拉取別?的提交。
完全可以??搭建?臺運? Git 的服務器,不過現階段,為了學 Git 先搭個服務器絕對是?題?作。好 在這個世界上有個叫 GitHub 的神奇的?站,從名字就可以看出,這個?站就是提供 Git 倉庫托管服務 的,所以,只要注冊?個GitHub賬號,就可以免費獲得 Git 遠程倉庫。
github 是國外的?站,速度?較慢,也可以采? gitee 來托管代碼。下來,我們從零開始, 使??下碼云遠程倉庫。
1.3新建遠程倉庫
新建遠程項?倉庫:

填寫基本信息

克隆遠程倉庫
克隆/下載遠端倉庫到本地,需要使? git clone 命令,后?跟上我們的遠端倉庫的鏈接,遠端倉庫
的鏈接可以從倉庫中找到:選擇“克隆/下載”獲取遠程倉庫鏈接:

SSH 協議和 HTTPS 協議是 Git 最常使?的兩種數據傳輸協議。SSH 協議使?了公鑰加密和公鑰登陸機 制,體現了其實?性和安全性,使?此協議需要將我們的公鑰放上服務器,由 Git 服務器進?管理。使 ? HTTPS ?式時,沒有要求,可以直接克隆下來。
git clone git地址
如果使? SSH ?式克隆倉庫,由于我們沒有添加公鑰到遠端庫中,服務器拒絕了我們的 clone 鏈接。需要 我們設置?下:
第?步:創建SSH Key。在??主?錄下,看看有沒有.ssh?錄,如果有,再看看這個?錄下有沒有 id_rsa 和 id_rsa.pub 這兩個?件,如果已經有了,可直接跳到下?步。如果沒有,需要創建
SSH Key:
ssh-keygen -t rsa -C "輸入自己的郵箱"
順利的話,可以在??主?錄?找到 .ssh ?錄,??有 id_rsa 和 id_rsa.pub 兩個?件,這兩
個就是SSH Key的秘鑰對, id_rsa 是私鑰,不能泄露出去, id_rsa.pub 是公鑰,可以放?地告
訴任何?
第?步:添加??的公鑰到遠端倉庫。

點擊確認后,需要對你進?認證,輸?你的賬號密碼即可。?此,我們的準備?作全部做完,歡快的 clone吧
如果有多個?協作開發,GitHub/Gitee 允許添加多個公鑰,只要把每個?的電腦上的
Key 都添加到 GitHub/Gitee,就可以在每臺電腦上往 GitHub/Gitee 上提交推送了。
1.4向遠程倉庫推送
本地已經 clone 成功遠程倉庫后,我們便可以向倉庫中提交內容
git add .
git commit -m "注解"
git push <遠程主機名> <本地分?名>:<遠程分?名>
1.5拉取遠程倉庫
git pull <遠程主機名> <遠程分?名>:<本地分?名>
2.配置 Git
2.1忽略特殊?件
在?常開發中,我們有些?件不想或者不應該提交到遠端,?如保存了數據庫密碼的配置?件,那怎 么讓 Git 知道呢?在 Git ?作區的根?錄下創建?個特殊的 .gitignore ?件,然后把要忽略的?件 名填進去,Git 就會?動忽略這些?件了。
不需要從頭寫 .gitignore ?件,gitee 在創建倉庫時就可以為我們?成,不過需要我們主動勾選?
下:

如果當時沒有選擇這個選擇,在?作區創建?個也是可以的。?論哪種?式,最終都可以得到?個完 整的 .gitignore ?件,例如我們想忽略以 .so 和 .ini 結尾所有?件, .gitignore 的內容
如下:
# 省略選擇模本的內容
...
# My configurations:
*.ini
*.so
在 .gitignore ?件中也可以指定某個確定的?件。
最后?步就是把 .gitignore 也提交到遠端,就完成了:
但有些時候,你就是想添加?個?件到 Git,但由于這個?件被 .gitignore 忽略了,根本添加不
了,那么可以? -f 強制添加:
git add -f [filename]
或者你發現,可能是 .gitignore 寫得有問題,需要找出來到底哪個規則寫錯了,?如說 a.so ?件
是要被添加的,可以? git check-ignore 命令檢查:
git check-ignore -v a.so
但是我們發現 .* 這個規則把 .gitignore 也排除了。雖然可以? git add -f 強制添加進去,
但有強迫癥的童鞋還是希望不要破壞 .gitignore 規則,這個時候,可以添加?條例外規則:
不排除.gitignore
!.gitignore
2.2給命令配置別名
在我們使? Git 期間,有些命令敲的時候著實讓?頭疼(太?了。。),幸運的是,git?持對命令進 ?簡化!
舉個例?,將 git status 簡化為 git st ,對應的命令為:
不過,我個?還是不推薦?家現在去使?他,?前所有的命令都要?動完成,盡快適應 Git。