安裝git程式
ContOS
Yum 遠
Sudo apt-get install gitWindows上安裝 https:// git-scm.com/download/win安裝完成以後還需要最後一步設定 git config --global user.name "Qiang"// un .com"//寫入到你的信箱 建立版本倉庫並推播檔案Mkdir /home/gitroot //建立目錄Cd /home/gitroot //進入目錄Cd /home/gitroot //進入目錄命令初始化。讓這個目錄編程git可以管理的倉庫Ls –a //可以看到.git目錄Echo –e “QIANG”>1.txt //建立一個檔案1.txtGit add 1.txt / /把1.txt加到倉庫Git commit –m “add new file 1.txt” //add完了必須要conmit才算真正把文件提交到git倉庫裡Echo –e “QIANG QIANG”> > 1.txt //更改1.txtGit status //查看目前倉庫中的狀態,例如是否有改動檔案Git checkout --1.txt//將倉庫中的1.txt覆蓋本地的1 .txtGit diff 1.txt /可以比較1.txt這次修改了什麼內容,相較於倉庫內的版本 刪除檔案1. m "add test.txt"3. rm test.txt4. git status5. 7. git commit -m "remove test.txt" 上傳目前目錄下所有檔案1. git add .2.
版本的變更
多次更改1.txt 並進行git add,git commit操作
Git log //可以查看所有提交git倉庫的倉庫記錄操作
Git log –pretty=oneline 一行一行顯示
透過git log可以查看到過去提交的所有版本,所以根據這個log可以指定回退某個版本
Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //可以回退該版本,這裡是長字串,可以簡寫(前5個字元)log顯示所有的版本
文件恢復
當修改1.txt 發現修改的不對,想修改上一次提交的狀態
Git checkout –1.txt//恢復到上一次提交的狀態
Git checkout –1.txt//恢復到上次提交的狀態
如果111 .txt修改完成,儲存後,git add 1.txt了但是沒有git commit,再想回退到上一次提交是的狀態,可以使用
Git reset HEAD 1.txt
然後再
Git checkout – 1.txt
檔案刪除
Echo “QIANG” >2.txt
Git add 2.txt
Git commit –m “add new file 2.txt
Git commit –m “add new file 2.txt
Git commit –m “add new file 2. Git status
Git rm 2.txt
Git commit –m “delete 2.txt”//徹底刪除2.txt
創建一個遠端的倉庫
:
創建一個遠端的倉庫
:1.https先註冊一個免費的倉庫/github.com/或https://git.oschina.net/2.權限認證,新增key github :Setting->SSH and GPG keys->new SSH key->title和key輸入進去oschina:個人資料->SSH公鑰->新增公鑰->標題與公鑰輸入進入
產生金鑰對:ssh-keygen
Liunx: Cat /root/.ssh/id_rsa
Liunx: Cat/root/.ssh/id_rsa /.ssh/id_rsa.pub //公鑰 Windwos:Cat c:/Users/Cmd/.ssh/id_rsaCat c:/Users/Cmd/.ssh/id_rsa.pub已成功新增郵件
3.創建一個創建鏈接倉庫 3.1 Mkdir /home/gitroot //創建目錄3.2 Cd /home/gitroot //進入目錄3.3 Git init //用命令初始化。讓這個目錄編程git可以管理的倉庫3.4 git remote add origin 倉庫地址 git remote add origin git@git.oschina.net:zhiqiangwang/Qiang.git隨便改,但請務必不要與已有的倉庫別名衝突
3.4.2倉庫地址一般來講支援
3.5 Echo –e “QIANG”>Qiang.txt //新建Qiang.txt
3.6 git add Qiang .txt
3.7 git commit –m “add Qiang.txt”
3.8 git push –u origin master //把本地的Qiang倉庫推送到遠端Qiang
3.9 Echo –e “QIANG QIANGtxt>Qiang
. //在Qiang.txt後面追加QIANG QIANG3.10 git add Qiang.txt3.11 git commit –m “update Qiang.txt”3.12 git push •m “update Qiang.txt”3.12 git push //把本地的Qiangangle 克隆一個遠端的倉庫 Git clone git@git.oschina.net:zhiqiangwang/Qiang.git
git checkout wang切換wang分支
分支合併
Git merge wang //把wang分支合併到master
合併常見的問題
1. 如果分支和wang
合併常見的問題1. 如果分支和wang個分支都對Qiang.衝突,許先解決衝突才可以繼續合併2. 解決衝突的方法就是在master分支下,編輯Qiang.txt,改為wang分支裡面的Qiang.txt的內容,然後提交Qiang.txt,在進行合併3. 如果master分支更改的內容是我們想要的,可以編輯Qiang.txt內容,改為想要的然後提交,切換到wang分支,然後合併master分支到wang分支即可。 Merge後面接的分支名字一定是最新的分支4. Git branch –d wang //刪除分支5. Git branch –D wang /如果分支沒有合併,強制刪除 使用分支的原則Master分支是非常重要的,線上發布程式碼的時候才用到這個分支
Dev分支就是專門用於開發的,重要發布線上之前才會把dev分支合併到master
開發人員應該才dev的基礎上在分支成個人分支,個人分支裡面發展程式碼,然後合併到dev分支
在dev分支合併bob分支指令就是
Git checkout dev //先切換dev分支
Git merge bob
現場保留在wang 分支編輯wang.txt去zhi分支修復bug,所以需要先git add wang.txt然後git stash保留現場再切換zhi分支修復,修復完bug之後,在切回wang分支Git stash list可以查看我們保留過的現場Git stash apply 恢復現場Git syash apply stash@{0} 恢復到指定現場•查看遠端程式庫資訊git ls-remote origin//查看遠端分支推送本地分支wang到遠端分支wang並建立關聯關係a. 遠端有wang分支並且已經關聯本地分支wang且本地已經切換到wang git pushb. 遠端有wang分支但未關聯本地分支wang且本地已經切換到wanggit push -u origin /wangc. 遠端沒有有wangwang git push origin wang: wang刪除本地分支git branch –d|-D wang刪除遠端分支git push origin :wang刪除遠端分支
git push origin :wang
刪除遠端分支git push origin :wang刪除分支
git。如果newbranch名字分支已經存在,則需要使用-M強制重命名,否則,請使用-m進行重新命名。
標籤管理
標籤類別是於快照功能,給一個版本庫打一個標籤,記錄某個時刻的狀態,也可以隨時恢復該狀態
1. git checkout master 先切換master上
1. git checkout master 先切換master上2 . git tag v1.0 給master打上一個標籤v1.03. git tag 看所有的標籤4. git log –-pretty=oneline –-abbrev-commit//查看歷史commit5. tag v0.9 d03da//針對歷史commit打標籤6. git tag –a –m “tag just v1.1” d03da//可以對標籤進行描述🎜🎜7. git tag –d v0.8刪除標籤🎜🎜8. git push origin v1.0//推送到指定標籤遠端🎜🎜9. git push --tag origin//推播所有標籤🎜🎜10. git tag –d//刪除本地標籤🎜11. git push origin : refs/tags/v1.0刪除遠端標籤
搭建git伺服器
1. Yum install git
2.
1. Yum install git2. shell,目的是為了不讓git使用者遠端登入Useradd –s /usr/bin/git-shell3. Cd /home/git4. 建立authorized_keys文件,更改屬主,屬組合權限,用屬主,屬組合權限於存客戶端機器上的公鑰5. Mkdir.ssh6. ssh-keygen //使用此指令產生金鑰對7. touch authorized_keys7. touch authorized_keys
8.git/cat/home. pub>>/home/git/.ssh/authorized_keys.
9. Chown –R git.ssh或Chown 600 .ssh/authorized_keys
10. 定義儲存倉庫的目錄/data/gitroot gitroot
Cd /data/gitroot
11. Git init –bare sample.git //建立一個裸倉庫,裸倉庫沒有工作區,因為伺服器上的git倉庫純粹為了貢獻,所以不讓使用者登入伺服器上改工作區,並且伺服器上的git倉庫透過以.git結尾
12. Chown –R git.git sample.git
以上操作是在git伺服器上做的,平時git伺服器不西藥開發人員登入修改程式碼,他只是扮演一個伺服器的角色,就像github一樣,平常都是在我們自己的pc上做的
在客戶端上克隆遠端倉庫
Git clone git@ip:/data/gitroot/sample .git