1.Git和SVN的對比
1)git是分布式的,svn是集中式的。(最核心)
2)git是每個歷史版本都存儲完整的文件,便於恢復,svn是存儲差異文件,歷史版本不可恢復。(核心)
3)git可離線完成大部分操作,svn則不能。
4)git有着更優雅的分支和合並實現。
5)git有着更強的撤銷修改和修改歷史版本的能力
6)git速度更快,效率更高。
基於以上區別,git有了很明顯的優勢,特別在於它具有的本地倉庫。
2.git幾個概念
1)工作目錄
工作目錄是對項目的某個版本獨立提取出來的內容。這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。
2)暫存區域
是一個文件,保存了下次將提交的文件列表信息,一般在 Git 倉庫目錄中。有時候也被稱作`‘索引’’,不過一般說法還是叫暫存區域。
3)Git 倉庫目錄
是Git 用來保存項目的元數據和對象數據庫的地方。這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這里的數據。
3.git使用
1)常用選項
add 把工作目錄內容添加到暫存區域
branch 查看和設置分支
checkout 切換分支和撤銷
clone 克隆遠程倉庫
commit 把暫存取余提交到倉庫
init 初始化工作目錄
log 查看提交的日志信息
merge 合並分支
pull 拉取遠程倉庫
push 把本地內容推送到遠程倉庫
reset 撤銷操作
status 查看文件所處的狀態
2)使用
創建和初始化目錄
mkdir /git_li
cd /git_li
git init
創建文件進行測試
echo "test" >test
git add . #把工作目錄下的所有文件提交到暫存區域
git commit -m "v1" #把暫存區域的內容提交到倉庫並標識為v1版本
git config --global user.email "you@example.com" #進行認證
git config --global user.name "Your Name"
再次提交
查看版本信息
gitlog
多次提交並設置為不同版本
echo "123" >> test
git add .
git commit -m "v2"
[master 4c1ef68] v2
1 file changed, 1 insertion(+)
echo "123" >> test
git add .
git commit -m "v3"
[master 7cb610b] v3
切換至V1版本
git reset --hard 8a3e5e13ab
工作目錄回滾
git checkout -- test #進行工作目錄狀態撤銷
暫存區域回滾
git reset HEAD test #不提交至倉庫
git checkout -- test #工作目錄中撤銷
查看歷史版本信息
git reflog
3)git分支
查看分支
git branch
創建分支
git branch test
切換分支
git checkout test
合並分支
git merge test
4.gitlab私有倉庫
GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的web服務。
可通過Web界面進行訪問公開的或者私人項目。它擁有與Github類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供一個文件歷史庫。團隊成員可以利用內置的簡單聊天程序(Wall)進行交流。它還提供一個代碼片段收集功能可以輕松實現代碼復用。
5.安裝gitlab
1)下載安裝包
wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm/download.rpm
2)修改ip
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.52.233'
3)重新配置
gitlab-ctl reconfigure
gitlab-ctl start
啟動gitlab時80端口不可被占用
4)gitlab使用
git clone http://192.168.52.233/root/test.git
git push -u origin master
5)linux免秘鑰使用gitlab
ssh-keygen 生成秘鑰
公鑰粘貼到gitlab的ssh-keys中
拉取gitlab項目
git clone git@192.168.52.233:root/test.git
