GIT學習
1.git 常用命令代碼
提交,或者修改代碼到暫存區
git add
2.設置簽名
git config user.name JackMa
git config user.email [email protected]
3.返回系統+目錄
cd ~
4.設置系統git簽名(/c/Users/ponyMa/.gitconfig)
git config --global user.name JackMa
git config --global user.email [email protected]
5.查看隱藏目錄結構
ls -la 或者 ll -la 或者 ls -la||less
6.查看工作區,暫存區 文件當前的狀態
git status
7.刪除文件
git rm —cached 文件名 ( git rm --cached good.txt 移除git暫存區的文件)
rm aaa.txt(刪除指定 aaa.txt 是文件名)
8.提交git暫存區中的文件
git commit 文件名( git commit good.txt 要進入)
git commit -m “update” good.txt(以直接寫註釋的方式提交)
git commit -m “update”(提交暫存區中的所有文件,不帶文件名)
9.查看提交文件的日誌(歷史記錄)
git log(查看文件提交的歷史記錄)
git log --pretty=oneline(日誌按一行的模式顯示)
git log --oneline(顯示更加簡潔)
git reflog(HEAD@{移動到當前版本的步數} 回退到某個版本需要移動幾步)
10.回退指定當前文件的版本
git reset --hard 593a611 (593a611指定的版本號(可以用 git reflog命令查看))
git reset --hard ^^(只能向後回退3個版本,幾個就向後回退幾個版本)
git resret --hard head3(只能向後回退3個版本,可以指定數字是多少就向後回退幾個版本)
git reset --soft 593a611 (593a611指定的版本號只是移動了本地庫的版本號(可以用 git reflog命令查看))
git reset --mixed 1ff49dd(1ff49dd指定的版本號只是移動了本地庫和暫存區的版本號(可以用 git reflog命令查看)))
git reset --hard head (刪除操作未提交到本地庫,可以回滾 )
10.比較文件的差異
git diff [文件名] (將工作區中的文件和暫存區進行比較文件)
git diff head^ [文件名] (和上一個文件比較)
git diff 31d6325 apple.txt(git diff [版本號] [文件名])
git diff (不帶文件名比較多個文件)
11.分支操作
git branch 分支名 (創建分支)
git branch -v (查看所有分支)
git branch hot_fix(創建指定名稱的分支)
git checkout hot_fix(切換分支,切換分支的時候一定要注意,當前的分支是否有文件未提交到工作區)
git merge hot_fix(合併分支,前提需要切換到主分支上面git checkout hot_fix)
12.解決切換分支出現的問題
HEAD 當前分支的內容
進入編輯模式
DD 刪除當前行
DD [參數] (參數可以輸入3行,就刪除3行)
PP 複製行
PP [參數](參數可以輸入3行,就複製3行)
13 Git 加密算法底層採用的SHA-1算法
13.1 集中式版管理工具機制(svn)13.1.1 保存每個文件變化的代碼,以增量的方式保存,可以節約服務器的空間
13.1.2 分支:把所有的文件複製一份分支上。
13.2 分佈式版管理工具機制(Git)
以快照的方式管理每個文件的版本.
分支:(新建分支)建一個指針,(切換分支)移動一個指針就好了.
14.指定查看某個文件的顯示的行數
tail -n 顯示的條數 文件名 (tail -n 10 good.txt 10 是顯示的條數 good. txt 是文件名)
15.多屏顯示方式
空格 向下翻頁
b 向上翻頁
q 退出
16.設置Git提交的命令
git remote -v 查看git地址
git remote add [別名] [git地址] 指定提交遠程庫的地址 (git remote add origin https://github.com/mahukang/huashan.git)
git push [別名] [分支名] 向遠程庫提交指定分支的文件(git push origin master 注意看下是否有新文件上傳)
git clone [地址] 克隆項目(目標需要複製 git clone https://github.com/mahukang/huashan.git
)1.好處:完整的把遠程庫下載到本地,2.創建origin遠程地址別名,3.初始化本地庫
git fetch [別名] [分支名] 拉取遠程庫指定分支的文件(git push origin master 注意看下是否有新文件上傳)
git log -p master… origin/master 從遠程的origin倉庫的master分支下載代碼到本地的origin master
git checkout origin/master 查看拉取後未合併的文件(注意一定要執行拉取命令後在看)
git merge [遠程別名]/[遠程分支名] 合併代碼 (git merge origin/master 遠程下載下來的代碼合併到本地倉庫,遠程的和本地的合併)
git pull [遠程別名] [遠程分支名] 從遠程庫拉取文件到本地 (git pull origin master 前提是不起衝動的情況下,執行這個命令,否則執行git push origin master,在執行git merge origin/master即可達到同樣的效果)
17.Git加入成員
設置—>協作者–>添加用戶
18.跨團隊協作操作
新建一個賬號 [email protected]
沒有權限提交(因爲此時的賬號是[email protected])
解決權限的問題,到控制面板—>用戶賬戶–>管理windows憑證–>刪除git網站的憑證即可重新輸入你擁有該網站的提交權限
訪問者git網站–>pull request–>Create pull request
屬於者git網站–>pull reques–>點擊需要提交的文件
合併代碼 Merger pull request(點擊沒有反應的話,建議用chrome)
>>點擊 Confirm merge
19.配置免密登陸
1.進入到根目錄 cd ~
2.檢查目錄 cd .ssh/
2.1 沒有 就執行
ssh-keygen -t rsa -C [email protected]
2.2 有 執行進入目錄執行ls -lf
3.查看SSH密鑰 cat id_rsa.pub
4.進入Git網站 配置免密登陸
5.複製SSH免密登陸的地址
6.創建免密庫 git remote add origin_ssh [email protected]:mahukang/huashan.git
7.推送免密庫
7.1此處注意不是git push origin master(未配置ssh密鑰的庫,這時還需要你輸入賬號和密碼後才能提交)
7.2正確做法 git push origin_ssh master
![圖解29
- Elipse配置git
1.新建一個maven項目(注意不要在已經有的git目錄下建項目,否則讀不到配置)
1.1鼠標右鍵->>new ->>選擇other–>Maven Project(按Ctrl+N的熱鍵進入新建選項)
1.2 New Maven Project 選擇相對應的選項,下面有屬性的解釋
Create a simple project (skip archetype selection) :創建一個簡單的項目(跳過對原型模板的選擇)[默認勾選]
User default Workspace location:使用本地默認的工作空間
–Loaction:本地工作空間目錄
Add project(s) to working set :增加項目到工作集
1.2 填寫相對應的項目配置
[外鏈圖片轉存失敗(img-FSSf1qXc-1565534719924)(./1563093024760.png)]項目配置選項簡要說明
-------Group Id:組Id,針對一個項目的普遍唯一識別符。相當於我們日常使用的包名,例如:com.git.
-------Artifact Id:要新建的項目的名字
-------Version:版本號,默認0.0.1-SNAPSHOT
-------Packing:要將該項目生成什麼類型,有jar,war,ejb,ear,rar,pom,maven-plugin,maven-archetype,osgi-bundle,eclipse-plugin
-------Name:名字(估計是模板的名字)
-------Description:說明
Parent Project(父項目)以之前的項目作爲基礎新建項目,點Browse出現(如圖6:選擇項目),可以以原有的項目作爲基礎新建,必須爲Jar或者pom纔行
1.3 創建web.xml文件 工程–>-->Java EE Tools -->Generate Deployment Descriptor Stub
2.工程初始化爲git本地庫
2.1 工程–>Team–>sharProject–>git
2.2 Create Repository
2.3 檢查本地庫是否初始化成功
2.4 工程本地庫設置簽名
3.Eclipse中忽略文件
1.Eclipse特定文件
這些都是Eclipse爲了管理我們創建的工程而維護的文件,和開發的代碼沒有直接關係。最好不要在Git中進行追蹤,也就是說可以把他們忽略了。.classpath 文件
.project 文件
.settings 目錄下所有文件
2.爲什麼要忽略Eclipse特定文件呢?
同一團隊中很難保證大家使用相同的IDE工具,IDE工具不同時,相關工程特定文件就有可能不同,如果這些文件加入版本控制,那麼開發時很可能需要爲了這些文件解決衝突。
3.GitHub官網樣例文件
3.1 https://github.com/github/gitignore 找到Java.gitignore
3.2 配置全局的javaGit提交忽略
# 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
3.3 在~/.gitconfig 文件中引入上述文件
excludesfile=C:/Users/ponyMa/Java.gitignore
[注意:這裏路徑中一定要使用"/",不要使用'\']
3.4 Eclipse檢查特定文件是否生效?
3.5 推送到遠程庫
3.5.1 首先在Git上新建一個和項目名一樣的庫 (https://github.com/mahukang/TestGit.git)]
3.5.2 Eclipse 推送設置
3.5.3 輸入賬號和密碼進行提交
3.5.4 添加到暫存區
3.5.5 添加提交說明
![圖解44 設置提交註釋
3.5.6 提交成功的提示
3.6 克隆工程
3.6.1 鼠標右鍵–>import–>import
3.6.2 配置遠程庫拉取的Git地址
![圖解47 導入步驟-2
3.6.3 默認爲 C:\Users\ponyMa\git\TestGit
3.6.4 選擇導入項目的屬性
3.6.5 轉換成Maven項目
3.6.6 解決衝突 Merge Tool
4 分支實戰
兩個項目的目錄:D:\git\TestGitProject\TestGit E:\baosight\Project\Git\TestGit
- 搭建GitLab服務器
1.安裝CentOS-7 安裝過程見本文https://blog.csdn.net/qq_24862137/article/details/100122590
2.配置外網規定ip cd /etc/sysconfig/network-scripts/
3.重啓網卡 service network restart 此處需要注意沒有重啓網卡是不生效的。
4.查看ip ifconfig
3.安裝並配置必要的依賴關係
3.1 安裝ssh sudo yum install -y curl policycoreutils-pythonopenssh-server
3.2 將SSH服務設置成開機自啓動,安裝命令:sudo systemctl enable sshd
3.3 啓動SSH服務,安裝命令:sudo systemctl start sshd
3.4 安裝防火牆 yum install firewalld systemd -y
3.5 開啓防火牆 service firewalld start
3.6 添加http服務到firewalld,pemmanent表示永久生效,若不加–permanent系統下次啓動後就會失效 sudo firewall-cmd --permanent --add-service=http
3.7 重啓防火牆 sudo systemctl reload firewalld
3.8 安裝Postfix以發送通知郵件 sudo yum install postfix
3.9先檢查一下wget 安裝 wget -v 確保安裝 wget yum -y install wget
.
4.0 下載GitLab鏡像源 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
4.1 安裝GitLab鏡像源 rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
這裏需要等待一段時間 當看到GitLab圖標的時候GitLab服務器就搭建好了[外鏈圖片轉存失敗(img-iKfu9EGB-1566984443687)(./1565536124027.png)]
4.2 修改gitlab配置文件指定服務器ip和自定義端口 vim /etc/gitlab/gitlab.rb
[外鏈圖片轉存失敗(img-GASQPPVM-1566984443688)(./1565536291709.png)]
記住切換root賬戶 命令: su root
進入編輯器後按“i”鍵進入編輯狀態,ESC鍵退出編輯狀態
退出並保存,命令輸入“:wq”
ps:注意這裏設置的端口不能被佔用,默認是8080端口,如果8080已經使用,請自定義其它端口,並在防火牆設置開放相對應得端口
4.3 改完配置重啓GitLab
1.啓動服務 gitlab-ctl reconfigure
[外鏈圖片轉存失敗(img-bfCh94VJ-1566984443688)(./1565537371156.png)][外鏈圖片轉存失敗(img-JRrsOAWA-1566984443689)(./1565537498758.png)]
2. 啓動所有gitlab 組件 sudo gitlab-ctl restart
[外鏈圖片轉存失敗(img-kpgPAHjm-1566984443689)(./1565537721762.png)]
3. 查看服務狀態 sudo gitlab-ctl status
[外鏈圖片轉存失敗(img-iVBoK7zi-1566984443689)(./1565537753159.png)]
4. 停止所有 gitlab 組件 sudo gitlab-ctl stop
[外鏈圖片轉存失敗(img-68pA9rc9-1566984443690)(./1565537799746.png)]
5. 查看日誌 gitlab-ctl tail
[外鏈圖片轉存失敗(img-lpYdPi2t-1566984443690)(./1565538768506.png)]
4.4 訪問GitLab注意此處是你前面配置的ip 192.168.1.53 初始賬戶: root 密碼:5iveL!fe
[外鏈圖片轉存失敗(img-ckpGmNX6-1566984443690)(./1565537919347.png)] mahukang
4.5 訪問成功
[外鏈圖片轉存失敗(img-msgKeWHD-1566984443691)(./1565538219064.png)]