1.歷史
寫這篇文章前,首先要致敬大佬---------> Linus 。2005年他用C語言編寫了Git,主體程序開發完成只用了兩週,一個月後大佬的Linux系統代碼由Git管理。2008年,GitHub上線。
2.Git的優勢
- 大部分操作在本地完成
- 完整性保證
- 儘可能添加數據而不是刪除或修改數據
- 分支操作非常快捷流暢
- 與Linux命令完美兼容
3.Git的安裝
Git的下載地址 https://git-scm.com/
4.Git本地操作
4.1 打開終端Git Bash
4.2 Git本地初始化及其創建用戶和郵箱
4.3 Git本地提交相關操作
git status 查看 所在分支/工作區/暫存區信息
git add [fileName] 將新增或修改的文件添加到暫存區
git rm --cached fileName 將新增的某個文件從暫存區移除
git commit [fileName] -m "我的註釋" 提交到本地庫
4.4 Git本地前進後退版本相關操作
git log --oneline 顯示歷史版本信息 hash值前7位--代碼註釋
git log --pretty=oneline 顯示歷史版本信息 hash值--代碼註釋
git reflog 顯示所有版本信息 hash值前7位--指針--狀態--代碼註釋
git reset --hard hash值 根據hash值回退或前進到這個版本
git reset --hard HEAD 將已經add的文件全部回退,其實就是當前版本不作修改
git reset --hard HEAD^ 回退一個版本
git reset --hard HEAD~n 回退n個版本
4.5 Git本地比較文件相關操作
4.6 Git本地分支相關操作
4.6.1 Git本地分支示意圖
4.6.2 Git本地分支命令
5.Git工作原理
-
Git底層採用的是 SHA-1 算法,保證數據完整性;
-
以文件變更列表的方式存儲信息,這類系統將它們保存的信息看作是一組基本文件和每個文件隨時間逐步累積的差異;
-
Git 把數據看作是小型文件系統的一組快照。每次提交更新時Git 都會對當前的全部文件製作一個快照並保存這個快照的索引。爲了高效,如果文件沒有修改,Git 不再重新存儲該文件,而是隻保留一個鏈接指向之前存儲的文件。所以Git 的工作方式可以稱之爲快照流
-
Git分支管理的本質是創建和移動指針
到這裏估計你肯定掌握本操作了,那麼可以刪除掉剛纔的所有文件了,包括.git。
然後自己創建幾個目錄,我這裏創建了3個
E:\zmjjobsGitWorkSpace 這個作爲創建者使用
E:\zmj1314GitWorkSpace 這個作爲成員使用
E:\zmj8888GitWorkSpace 這個作爲外部組織使用
下面的講解從新開始。。。
6.Git與GitHub之間的操作
6.1 Git本地與外部代碼託管中心GitHub交互圖
6.2 Git與GitHub間操作詳細步驟
註冊賬號很簡單,我就不介紹了。官網地址:https://github.com/
6.2.1 GitHub修改profile
6.2.2 GitHub創建新項目
git remote add origin 遠端git地址 給遠端git地址起一個別名叫origin
git remote -v 顯示遠端地址與別名
git push [-u] origin master 將代碼推送到遠端
6.2.3 Git成員用戶操作
如果有邀請,一般會有郵箱提醒。如果沒有可以直接找創建者要邀請鏈接也可以
git fetch [遠程庫地址別名] [遠程分支名] 抓取遠端代碼
git merge [遠程庫地址別名/遠程分支名] 合併遠端代碼
git pull [遠程庫地址別名] [遠程分支名] 拉取遠端代碼,相當於git fetch + git merge
git push [遠程庫地址別名] [遠程分支名] 推送代碼到遠端
6.2.3 Git成員與成員間的操作
6.2.4 Git內部與外部組織的操作
6.2.4 Git SSH免密操作(如果操作系統支持自動免密就不用管了)
7. Eclipse使用Git
7.1 Eclipse的Git本地化
選中工程>右鍵>Team>Share Project>Git>>>
7.2 Eclipse的Git忽略文件
文件操作跟命令差不多,不介紹了,一看就會。這裏主要說下Java語言的忽略文件。
首先在 .gitconfig文件加入內容,也就是指定忽略文件的地址,注意路徑裏面一定要使用 /
[core]
excludesfile = C:/Users/Administrator/Java.gitignore
新建一個文件Java.gitignore,然後將Eclipse的Navigator視圖打開,加入自己想忽略的文件或目錄即可,當然別忘了重啓Eclipse。參考網址 https://github.com/github/gitignore
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
7.3 Eclipse的Git工作流
7.3.1 模擬工作狀態
- 工程>右鍵>Team>Switch to>New branch>
- 分支修改好文件後,推送到遠端分支。如果成功後,遠端分支會看到內容。
- master合併hotfix分支,如果是在本地則選擇本地也可。如果是其他人修改,或者本地沒有了,則合併遠端分支
8. GitLab
這裏以Centos7爲例
8.1 下載Gitlab的rpm包
cd /opt/
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
8.2 執行安裝Gitlab
新建一個叫install_gitlab.sh的腳本,腳本內容爲
sudo rpm -ivh /opt/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce
然後執行命令,安裝時間相當於我喝了一大杯的熱水。
chmod 755 install_gitlab.sh
./install_gitlab.sh
reboot
重啓完畢後,開始初始化和啓動服務。初始化時間有點長啊,我吃了個夜宵回來才裝完!
gitlab-ctl reconfigure
gitlab-ctl start
8.3 頁面訪問Gitlab
輸入服務器的IP地址訪問即可。如果不能訪問,請檢查防火牆和配置信息
配置文件是 /etc/gitlab/gitlab.rb