Git 安裝和使用經驗總結

GIt安裝和使用經驗總結

此文是本菜雞在實踐屢次git搭建內網服務版本庫和GitHub上的使用總結
部分參考了這位大佬的博客https://www.cnblogs.com/dee09...
另外推薦廖雪峯大佬的git博客html

進入正題git

一.Git 公司服務器的搭建

注意注意,下面的方法是常規的git服務器搭建過程,其實徹底可使用gitlab之類的開源軟件搭建git服務器,下面這種方式其實比較雞肋,gitlab就至關於本身搭建github,值得一試~github

前提是服務器配置稍好,gitlab運行佔用大約4G內存centos

1.Git服務器端安裝

個人服務器是Centos7 因此使用yum命令安裝bash

yum install -y git

上面必須保證服務器可聯網
安裝完成後使用命令查看git版本服務器

git --version

顯示版本即視爲安裝成功eclipse

2.下載客戶端安裝Git For Windows

地址https://git-scm.com/download/win
一直默認安裝就能夠,右擊鼠標能夠出現git bush選項即視爲安裝成功ssh

3.在服務器端建立一個git的用戶

注:這個用戶是用來作版本庫全部者的區分的,不是做爲上傳代碼的用戶的,只須要一個就能夠了。
執行命令
添加名爲git的用戶maven

useradd git

爲用戶git 設置密碼gitlab

passwd git

4.服務器端建立git倉庫

能夠設置任意位置爲git倉庫,咱們把git倉庫放在/home/data/git/下
git倉庫通常以*.git這樣格式的文件夾來表示,隨意命名

首先建立git倉庫所需文件夾

mkdir -p /home/data/git/testgit.git

初始化git倉庫

git init --bare /home/data/git/testgit.git

系統會提示初始化一個空的版本庫
將testgit.git文件夾的用戶權限給予git用戶便可

cd /home/data/git
chown -R git:git /home/data/git/testgit.git/

至此,咱們已經完成一個服務器端的git倉庫搭建。

二. 鏈接遠程git倉庫

完成倉庫搭建後便可鏈接遠程倉庫
鏈接須要服務器主機ip,個人是192.168.25.108,下面將服務器遠程倉庫克隆到本地。

1.在裝有客戶端的winsows電腦使用git bash執行

git clone git@192.168.25.108:/home/data/git/testgit.git

獲得以下界面
clipboard.png

輸入yes 回車,提示輸入密碼,無視繼續回車走起

clipboard.png
結束後會在電腦 C:/Users/用戶名/.ssh/ 中生成一個文件known_hosts 這個文件會保存全部鏈接過的ip信息,下一次鏈接這個IP就不會有上面的提示了。
使用文本編輯文件能夠看到咱們的ip信息

clipboard.png
此時咱們就能夠將遠程git倉庫的代碼克隆到本地了。
再次執行

git clone git@192.168.25.108:/home/data/git/testgit.git

輸入上面設置的git用戶的密碼便可將遠程代碼克隆到本地
通常狀況下咱們爲了提交代碼快捷簡便都會採用SSH免密登陸的方式來訪問遠程倉庫,這樣就不會頻繁的輸入密碼

2.SSH免密登陸及端口問題解決

客戶端建立SSH公鑰私鑰,在git bash中執行(下面的郵箱地址隨意填寫一個本身的郵箱就能夠)

ssh-keygen -t rsa -C "example@email.com"

此時在C:/Users/用戶名/.ssh/ 中生成了兩個文件

clipboard.png

pub結尾的文件爲公鑰,另外一個文件爲私鑰,當咱們吧本身的公鑰信息放在對應服務器上就能夠免密碼訪問服務器,實現免密碼克隆版本庫

3.服務器端打開Rsa認證

vi /etc/ssh/sshd_config

將如下三項的註釋去掉

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

保存並重啓sshd服務:

centos6命令

/etc/rc.d/init.d/sshd restart

centos7命令

systemctl restart sshd.service

由 AuthorizedKeysFile 得知公鑰的存放路徑是 .ssh/authorized_keys,其實是 $Home/.ssh/authorized_keys,因爲管理 Git 服務的用戶是 git,因此實際存放公鑰的路徑是 /home/git/.ssh/authorized_keys

在/home/git/下建立目錄/.ssh

mkdir -p /home/git/.ssh

修改.ssh文件夾的用戶

chown -R git:git /home/git/.ssh

4.將客戶端公鑰導入服務器端

在客戶端git bash中執行命令

ssh git@192.168.25.108 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

導入成功後回到服務器端查看是否已經將對應的公鑰內容導入

vi /home/git/.ssh/authorized_keys

公鑰是以郵箱地址結尾(上面添加的我的郵箱)

修改.ssh/的目錄權限爲700
修改authorized_keys的權限爲600

chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

再次在客戶端嘗試克隆

git clone git@192.168.25.108:/home/data/git/testgit.git

5.ssh端口不是默認端口的解決方法

有些公司內網服務器不能使用通用22端口,這樣每次訪問git還得額外多加端口信息。

解決方法: (以192.168.25.108 ssh端口爲8822爲例)
在C:/Users/用戶名/.ssh/ 下新建一個config文件
文件內容

Host 192.168.25.108
Port 8822

這樣命令不變也能夠克隆倉庫。
未完待續~

三. Git提交代碼和衝突處理以及文件忽略,以eclipse爲例

注:使用eclipse初始化本地版本庫可能會打亂目錄結構,尤爲是maven之類的項目帶父子工程的,很容易打亂目錄結構,看着很不舒服,解決方法見第四節
今天使用eclipse插件提交到版本庫,怎麼也提交不上去,最後無奈使用命令提交,插件畢竟是插件,出現bug的時候試試命令行,提交方法見第四節

1.新建git項目

在eclipse中的項目右擊>>Team>>share Project

clipboard.png

clipboard.png
點擊finish完成本地版本庫的建立

右擊項目

clipboard.png

繼續

clipboard.png

提交後本地版本庫已經同步,下面把本地代碼推送到遠程版本庫
Team>>remote>>push

clipboard.png

clipboard.png
第一次提交推薦勾選Force Update
完成後會收到已經推送的提示

2.衝突解決

網上解決衝突的方法都差很少。下面是個人使用的心得:

我的經驗:大部分狀況下,若是你須要提交的很少,最快的解決衝突辦法就是從新下載一個新的版本或者使用以下方法

方法:eclipse中選擇衝突文件右擊>>Team>>advanced>>AssumeUnchanged 這個選項的意思就是標記爲未修改,也就是說這個文件在被標記了以後使用Pull命令後遠程代碼會覆蓋本地代碼,這個選項儘可能只在單個文件使用。

clipboard.png

六.Git常識及注意事項

1.git提交時會自動忽略空文件夾

相關文章
相關標籤/搜索