搭建私有YUM倉庫與內網映象站
前言
Git是一種分散式程式碼版本控制工具。
Git是免費的。
有些人說,Git是最強大版本控制工具。
我不是大神,所以,我只發表我自己工作中的使用感受與理解,對於不對,大家自己判斷,歡迎指正:
Git功能強大沒錯,但相對來說,學習成本較高。想要基本會用Git,最起碼就要理解Git中的工作區、暫存區、倉庫、遠端倉庫,並且,要理解分散式程式碼版本控制的基本概念,版本控制與程式碼同步是分離的,也因此可以支援離線操作。
而常用的SVN,比如TortoiseSVN,屬於集中式程式碼版本控制,想要正常工作,必須使工作的電腦可以連線上存放程式碼的伺服器,否則,就無法進行版本版本控制與程式碼同步,但學習成本較低,即使從來沒接觸過版本控制概念的人也可以在幾分鐘內做到簡單使用。
於是,對於選擇,我做出以下建議:
Git:
工作環境網路非常不穩定,甚至經常實現,因為Git的版本控制可以離線執行,本地也有版本庫。
學習研究,經常在GitHub社群中進行程式碼提交等操作。
不急於推進工作進展,能夠接受相對較長的工作培訓或學習週期。
十分擔憂伺服器安全,對程式碼的版本歷史比較關心,擔心會有山洪爆發、地震、泥石流等出現在伺服器的位置,並剛好乾掉伺服器。
團隊只能接受素質比較高的人。
工作裝置經常變化。
程式碼高度開源。
SVN:
工作環境如無意外都有網路。
學習研究,在伺服器中安裝SVN的Server端,進行程式碼倉庫的管理。【這一點是SVN的難點,可能比Git還難,因為Git除非涉及到自建倉儲庫,否則不會接觸到伺服器配置以及許可權級別管理等東西】
團隊人員一上手,就可以快速參與到開發中去,哪怕這個人沒聽說過版本控制這個概念
不是太擔心伺服器安全,最多對伺服器進行定期備份,只關心程式碼的基本完整性,不關心程式碼的版本歷史細節。
程式碼安全要求比較高,許可權控制需要精確到專案或者子目錄級別。
對於Git更全面的瞭解,可以參照以下地址,可能比我的文章有用:
Git教程(菜鳥教程:字典工具),Git教程(Java團長:圖解),Git教程(廖雪峰:詳解)
目的
對於我來說,使用Git是為了管理自己在Windows平臺下的專案,該專案已經發布在了GitHub上,本地又進行了一些修改,但又想在家裡自己的電腦上也能修改自己的類庫專案,裝置多變,就用到了Git。
所以,對於我來說,用Git的目的是為了解決以下問題:
1.同步本地與GitHub的程式碼
2.異地開發時進行程式碼同步,不至於重複性的開發維護兩套程式碼
3.公司使用的是SVN,我不想使用自己的SVN賬號登入公司的電腦,麻煩而且危險。
目前來說,對於什麼都要學的我來說,我的方針是夠用就行,所以,此文章目前只關注於解決上述問題,並對解決問題的過程進行記錄與整理。
正文
1.下載Git並安裝
安裝成功後,會出現Git CMD/Git Bash/Git GUI三個工具,其中Git GUI是圖形化介面,但目前Git-2.29.2.2-64-bit.exe支援的操作不多,只有基本操作。我這裡用的是Git Bash。
2.配置使用者名稱和Email
git config --global user.name "name" git config --global user.email "mailURI"
輸入後你可能發現沒什麼反饋,別擔心,我的也是,但沒影響,如果不放心,可以使用git config --list命令檢視配置資訊。該配置是為了配置個人的使用者資訊,至於這個使用者資訊,換了裝置能不能用,彆著急,往下看。。。
3.建立本地倉庫
cd /d/Demo/Arvin/ --進入指定目錄,當前所在目錄可以在Git Bash中用pwd命令檢視
git init -b main ArvinGit --該命令會在Arvin資料夾下的ArvinGit中建立一個.git資料夾,如果ArvinGit資料夾不存在,則會自動建立。其中.git是隱藏資料夾。win10中通過檢視->勾選隱藏的專案檢視隱藏的專案,其他版本或者系統請自行查詢。
注意:目前的Git自動建立的分支名是master,屬於歷史遺留問題,但從2020年10月1日起,為避免奴隸制聯想,GitHub的主分支不再是master,而是main,但Git顯然在此時還沒有改正過來,所以,為了避免後續問題,建議用-b main指定初始化倉庫的分支名稱。
這種奴隸制詞彙的替換是一種趨勢,GitHub、微軟,IBM,Twitter等各大科技公司都在進行這項推進,所以為了將來不必要的麻煩,最好一開始就把主分支的名字命名為main,而不是master
4.關聯Github與本地倉庫
4.1.配置SSH
ssh-keygen -t rsa -C "GitHub郵箱地址" --生成 SSH Key【本地Git倉庫和 GitHub 倉庫之間的傳輸是通過SSH加密的,需要配置驗證資訊】【成功後生成 .ssh 資料夾,開啟 id_rsa.pub,複製key】
注意,複製key時需要帶上ssh-rsa。然後複製到GitHub上的指定位置,New SHH key,然後按提示放入key,最後生成如下所示:
4.2.進行關聯GitHub
git remote add origin https://github.com/*********/Arvin --關聯本地的git庫與GitHub,此外,需要注意,origin不是關鍵字,是自己命名的表示remote地址的key git remote -v --檢視本地Git倉庫關聯的remote列表
5.同步程式碼
git add ./ --將當前目錄下的所有檔案(除了.gitignore檔案忽略的檔案)新增到暫存區【常用的忽略檔案的下載地址:https://github.com/github/gitignore】,由於我的是.net專案我這裡用的是其中的VisualStudio.gitignore忽略檔案 git commit -m "提交的日誌描述" --提交暫存區的檔案到本地倉庫,並生成版本日誌 git push -u origin main --成功時,將本地倉庫的檔案推送到GitHub的main分支
擴充套件
git常用命令:
#建立本機使用者 git config --global user.name "Arvin Jing" git config --global user.email "*******@qq.com" #建立本地倉庫 git init -b main ArvinGit #暫存區 git add [檔名] git add ./ git ls-files //檢視暫存區的檔案 git rm --cached [檔名] //移除暫存區指定檔案 git rm --cached -r * //移除暫存區所有檔案,包括子目錄,如果想移除指定資料夾,則將*替換為資料夾名稱 #提交到本地倉庫 git log //檢視提交日誌 git commit -m "日誌內容" #管理與GitHub庫的連線 git remote add origin https://github.com/627539904/Arvin git remote set-url origin https://github.com/627539904/Arvin git remote remove origin git remote -v git push -u origin main #分支管理: git branch -m master main //將master遷移到main git push origin --delete master //刪除master分支 #強行拉取 git pull --allow-unrelated-histories origin main