ContOSgit
Yum install –y epel-releasegithub
Yum install –y gitshell
Ubuntu編程
Sudo apt-get install git服務器
Windows上安裝app
https://git-scm.com/download/winssh
安裝完成之後還須要最後一步設置spa
git config --global user.name "Qiang"//好比Qiang.net
git config --global user.email "zqwang121@sina.com"//寫入到你的郵箱3d
Mkdir /home/gitroot //建立目錄
Cd /home/gitroot //進入目錄
Git init //用命令初始化。讓這個目錄編程git能夠管理的倉庫
Ls –a //能夠看到.git目錄
Echo –e 「QIANG」>1.txt //建立一個文件1.txt
Git add 1.txt //把1.txt添加到倉庫中
Git commit –m 「add new file 1.txt」 //add完了必需要conmit纔算真正把文件提交到git倉庫裏
Echo –e 「QIANG QIANG」>> 1.txt //更改1.txt
Git status //查看當前倉庫中的狀態,好比是否有改動文件
Git checkout --1.txt//將倉庫中的1.txt覆蓋本地的1.txt
Git diff 1.txt /能夠對比1.txt本次修改了什麼內容,相比倉庫裏面的版本
1. git add .
2. git commit -m "updata all"
3. git push
屢次更改1.txt 並進行git add,git commit操做
Git log //能夠查看全部提交git倉庫的倉庫記錄操做
Git log –pretty=oneline 一行一行顯示
經過git log能夠查看到過去提交的全部版本,因此根據這個log能夠指定回退某個版本
Git reset –hard d03da70182c1e78d04df1d7eee2f6a972ae4f82b //能夠回退該版本,這裏是長字符串,能夠簡寫(前5個字符)
Git reflog //能夠顯示全部的版本
當修改1.txt 發現修改的不對,想修改上一次提交的狀態
Git checkout –1.txt//恢復到上一次提交的狀態
若是1.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」
Rm –f 2.txt
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
Cat /root/.ssh/id_rsa.pub //公鑰
Windwos:Cat c:/Users/Cmd/.ssh/id_rsa
Cat 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.1 origin是你的倉庫的別名 能夠隨便改,但請務必不要與已有的倉庫別名衝突
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
或者git push origin master或者git push origin master -f(強制推送)
3.9 Echo –e 「QIANG QIANG」>>Qiang.txt //在Qiang.txt後面追加QIANG QIANG
3.10 git add Qiang.txt
3.11 git commit –m 「update Qiang.txt」
3.12 git push //把本地的Qiang倉庫再次推送到遠程Qiang
克隆一個遠程的倉庫
Git clone git@git.oschina.net:zhiqiangwang/Qiang.git
Git branch 查看分支
Git branch wang 建立分支
git checkout wang 切換wang分支
Git merge wang //把wang分支合併到master
合併常見的問題
1. 若是master分支和wang分支都對Qiang.txt進行編輯,當合並時提示衝突,許先解決衝突才能夠繼續合併
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 remote –v //查看遠程庫信息
git ls-remote origin//查看遠程分支
推送本地分支wang到遠程分支 wang並創建關聯關係
a. 遠程已有wang分支而且已經關聯本地分支wang且本地已經切換到wang
git push
b. 遠程已有wang分支但未關聯本地分支wang且本地已經切換到wang
git push -u origin /wang
c. 遠程沒有有wang分支並,本地已經切換到wang
git push origin wang: wang
刪除本地分支
git branch –d|-D wang
刪除遠程分支
git push origin :wang
git branch -m | -M oldbranch newbranch 重命名分支,若是newbranch名字分支已經存在,則須要使用-M強制重命名,不然,使用-m進行重命名。
標籤類是於快照功能,給一個版本庫打一個標籤,記錄某個時刻的狀態,也能夠隨時恢復該狀態
1. git checkout master 先切換master上
2. git tag v1.0 給master打上一個標籤v1.0
3. git tag 查看全部的標籤
4. git log –-pretty=oneline –-abbrev-commit//查看歷史commit
5. git 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刪除遠程標籤
1. Yum install git
2. 添加git用戶,並設置shell爲/usr/bin/git-shell,目的是爲了避免讓git用戶遠程登陸
Useradd –s /usr/bin/git-shell
3. Cd /home/git
4. 建立authorized_keys文件,更改屬主,屬組合權限,用於存客戶端機器上的公鑰
5. Mkdir.ssh
6. ssh-keygen //使用該命令生成密鑰對
7. touch authorized_keys
8. cat /home/git/id_rsa.pub>>/home/git/.ssh/authorized_keys.
9. Chown –R git.ssh或者Chown 600 .ssh/authorized_keys
10. 定義存儲git倉庫的目錄 /data/gitroot
Mkdir /data/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
此時能夠進入sample目錄下,這個就是咱們克隆遠程倉庫。進入到這裏面進行開發,而後push到遠程
全棧工程師技術QQ交流羣:368683534