
git的使用方法
1、安裝git
2、創(chuàng)建用戶名和郵箱
git config --gloabal user.name "lau0400810121"
git config --gloabal user.email "lau0400810121@163.com"
3、建立版本倉庫
git init
4、在倉庫的工作區(qū)創(chuàng)建文件、添加到緩存區(qū)、提交到版本倉庫
vim 1.php 創(chuàng)建
git add 1.php 添加到緩存區(qū)
git status 查看當(dāng)前工作區(qū)的狀態(tài)
git diff HEAD -- 1.php 查看當(dāng)前修改和版本庫中文件的差別
git commit -m '版本修改說明'
5、版本回退
git log 查看所有的版本信息
git reset --hard HEAD^ 回到上一版本
git reset --hard HEAD^^ 回到上上一版本
git reset --hard 版本ID
git reflog 查看版本操作命令(方便進行版本回到未來的操作)
6、撤銷工作區(qū)內(nèi)容的修改(在commit之前)
(已經(jīng)add但沒有提交)
git reset HEAD 1.php
(未提交之前的修改)
git checkout -- 1.php
會回退到最初的工作區(qū)的狀態(tài)
但一旦提交到了版本倉庫了之后,那就使用 git rest --hard 版本ID 來實現(xiàn)版本的回退,盡量不要托管到遠程倉庫再進行修改
總結(jié):
場景1:當(dāng)你改亂了工作區(qū)某個文件的內(nèi)容,想直接丟棄工作區(qū)的修改時,用命令git checkout -- file。
場景2:當(dāng)你不但改亂了工作區(qū)某個文件的內(nèi)容,還添加到了暫存區(qū)時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作。
場景3:已經(jīng)提交了不合適的修改到版本庫時,想要撤銷本次提交,參考版本回退一節(jié),不過前提是沒有推送到遠程庫。
7、刪除文件
1)先在本地文件管理目錄進行刪除 git rm 1.php 然后提交到版本倉庫 git commit -m 'delete 1.php' 實現(xiàn)本地和版本倉庫的一致性
2)撤回刪除 git checkout -- 1.php
8、遠程倉庫
第1步:生成秘鑰文件
ssh-keygen -t rsa -C "lau0400810121@163.com"
一路下一步,最終在”C:\Users\hasee\.ssh“下看到2個文件
第2步:登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
然后,點“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub文件的內(nèi)容:
第3步:團隊開發(fā),添加多個ssh key
9、添加遠程倉庫
在github上創(chuàng)建一個新的倉庫,假設(shè)倉庫名稱為study
1、本地庫與遠程庫建立聯(lián)系
git remote add origin git@github.com:自己的github賬號名/study.git
2,假如遠程倉庫已經(jīng)有了文件了,先得同步到本地
git pull --rebase origin master 從github拉取下來
3、把本地倉庫下的內(nèi)容推送到GitHub倉庫中
git push -u origin master
4、以后只要本地做了提交到本地版本庫,就可以使用下面命令推送到
git push origin master 推送到GitHub
10、從遠程庫中克隆
在github上創(chuàng)建一個新的版本倉庫,命名為mygit
克隆遠程倉庫到本地形成一個本地倉庫
git clone git@github.com:GitHub賬號/mygit.git(既可以是git@github.com,也可以是https://github.com/GitHub賬號/mygit.git)
然后在本地的mygit庫中查看同步的文件
11、分支
創(chuàng)建并切換到新分支 git checkout -b dev
相當(dāng)于: git branch dev(創(chuàng)建) git checkout dev(切換)
git branch 查看當(dāng)前分支
分支合并:
首先切換到主分支上 git checkout master
在主分支上進行合并 git merge dev
分支刪除:
git branch -d dev
12、沖突解決
1)當(dāng)在一個分支上修改一個文件提交到分支版本庫時,同時主分支也進行修改該文件并進行提交,
接著進行合并時就會出現(xiàn)沖突
2)直接在主分支上打開沖突文件(可以使用git status查看),并進行相應(yīng)的修改,最后提交即可
3)刪除分支
4)git log --graph --pretty=oneline --abbrev-commit 可以看到分支合并圖
13、分支處理策略
master分支只作為發(fā)布版本,平時不在上面操作
dev分支用來做開發(fā)使用,每個人往dev分支上開發(fā),最后進行合并
git merge --no-ff -m "merge with no-ff" dev
14、BUG分支
假定手頭有分工作正在dev分支上操作,但是沒有完成,但此時需要修復(fù)BUG
可以先隱藏當(dāng)前的分支
git stash
通過git status 查看工作區(qū)
假設(shè)需要在主分支上修復(fù)BUG,此時切換到主分支上去
git checkout master
在主分支上創(chuàng)建BUG分支
git checkout -b bug_01
在BUG分支完成修改提交后,切換到主分支進行合并并刪除掉BUG分支
接著重新跳到dev分支上工作
git checkout dev
重新返回到原工作區(qū)
git stash pop
15、強行刪除(一個未合并的)分支
git branch -D feature-vulca
16、多人操作
查看遠程倉庫 git remote -v
推送分支 git push origin master
git push origin dev
master分支是主分支,因此要時刻與遠程同步;
dev分支是開發(fā)分支,團隊所有成員都需要在上面工作,所以也需要與遠程同步;
bug分支只用于在本地修復(fù)bug,就沒必要推到遠程了,除非老板要看看你每周到底修復(fù)了幾個bug;
feature分支是否推到遠程,取決于你是否和你的小伙伴合作在上面開發(fā)。
17 多人協(xié)作開發(fā)
多人協(xié)作的工作模式通常是這樣:
首先,可以試圖用git push origin branch-name推送自己的修改;
如果推送失敗,則因為遠程分支比你的本地更新,需要先用git pull試圖合并;
如果合并有沖突,則解決沖突,并在本地提交;
沒有沖突或者解決掉沖突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,則說明本地分支和遠程分支的鏈接關(guān)系沒有創(chuàng)建,用命令git branch --set-upstream branch-name origin/branch-name
18、打標(biāo)簽方面更好的查找,比版本ID更容易記
在指定分支上添加標(biāo)簽 git tag v1.0
查找所有的標(biāo)簽 git tag
查看所有的版本信息 git log --pretty=oneline --abbrev-commit
創(chuàng)建帶有說明的標(biāo)簽 git tag -a v0.1 -m "version 0.1 released" 3628164
查看標(biāo)簽信息 git show v0.1
刪除標(biāo)簽 git tag -d v0.1
推送標(biāo)簽到遠程 git push origin v0.1
git push origin --tags
刪除已經(jīng)推送到遠程的標(biāo)簽
先在本地刪除 git tag -d v0.1
再刪除遠程 git push origin :refs/tags/v0.1
19、搭建git服務(wù)器
第一步,安裝git
yum -y install git
第二步,創(chuàng)建git用戶來管理git
adduser git
第三步,創(chuàng)建證書登陸
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個。
第四步,初始化Git倉庫:
先選定一個目錄作為Git倉庫,假定是/srv/sample.git,在/srv目錄下輸入命令
git init --bare sample.git
Git就會創(chuàng)建一個裸倉庫,裸倉庫沒有工作區(qū),因為服務(wù)器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉庫通常都以.git結(jié)尾。然后,把owner改為git:
chown -R git:git sample.git
第五步,禁用shell登錄:
出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
第六步,克隆遠程倉庫:
git clone git@server:/srv/sample.git
北京星誠視野網(wǎng)絡(luò)科技有限公司 © 2008-2022 京ICP備09003513-1號 技術(shù)支持:北京網(wǎng)站建設(shè)公司 北京APP開發(fā)