Git 命令及git服務器


Linux 服務器上安裝git

yum -y install git 

git config  --global user.name "name"

git config  --global user.email "email"

globa 參數表示這台機器上所有倉庫都會使用這個配置,當然也可以對指定倉庫使用指定的配置

創建倉庫的兩種方法:

普通 倉庫       git init 
裸庫              git init  --bare

兩者的區別參見 https://segmentfault.com/q/1010000004683286/a-1020000004684114

當創建普通庫時,除了 .git目錄之外,你還可以看到庫中所有所包含的所有源文件,擁有了一個可以瀏覽,修改的本地庫(add,commit.delete)

一般來說,一個裸庫往往被創建用於 作為大家一起工作的共享庫,每個人都可以往里面 push 自己的本地修改,一個常用的方式是在庫名后面加上 .git 

復制代碼
git status  查看當前倉庫的狀態
git diff 查看修改的內容
git commit 提交
git log 提交歷史記錄
git reflog 歷史命令
git reset --hard HEAD^ 文件回退
git reset --hard 23134(版本號前面幾位)
復制代碼

在進行版本回退額時候 執行 git reset  --hard  12312后,現在又后悔了,想要回到最新的狀態  實行 git reflog 看到最新的一次提交的commit id 執行  get reset --hard lastid 即可回到最新狀態

git chekout -- text.txt  丟棄工作區的修改 ,這讓個文件回到了最近一次 commit 或 add 時 的狀態

 文件的刪除

git rm  filename    然后git commit 
 git push origin master
如果手動刪除文件 rm -rf 1.txt 后想恢復文件 git checkout -- 1.txt 從版本庫中將文件恢復

git  checkout 會用版本庫里的版本替換工作區中的版本,無論工作去是修改還是刪除,都可以一鍵還原。

 關於分支。

復制代碼
查看現在在哪個分支  git branch
創建分支 git branch  name
切換到某分支 git checkout name
創建並切換到某分支  git checkout -b name
合並某分支到當前分支  git merge name
刪除分支 git branch -d name

切換到a分支后,是看不見在b分支修改創建的文件,合並分支后是可以看見的
復制代碼

 

復制代碼
將工作現場儲藏   git stash
查看工作現場 git stash list

恢復現場的兩種方法
1 git stash apply 恢復后stash內容並不刪除,需要通過git stash drop 來刪除
2 git stash pop 恢復的同時把 stash 內容也刪了
復制代碼

通過git remote 查看遠程庫的信息 git remote -v 顯示更詳細的信息

 

多人分支合作分工

復制代碼
使用 git push origin branch branchname 推送自己的修改
如果推送失敗,則因為遠程分支比你的本地分支要新,使用git pull 合並
如果合並有沖突,則解決沖突,並在本地提交
沒有沖突或者解決掉沖突后,再用 git push origin branch branchname推送就能成功
如果 git pull 提示" no tracking information" 說明本地分支和遠程分支沒有鏈接關系
使用  git branch --set-upstream branch-name origin/branch-name
復制代碼

 

git config --list 查看git 的配置情況

 

一個git 服務器的搭建

參考鏈接 http://www.cnblogs.com/dee0912/p/5815267.html

 git init --bare gittest.git   創建一個裸倉庫 (裸倉庫沒有工作區)

在 hooks底下創建一個文件   post-receive

內容為

#!/bin/bash
git --work-tree=/home/www checkout -f 

chown git:git  post-reveive

chmod a+x post-receive

地址就是 git@ip:/home/dir/git.git

客戶端每次 git clone 和pull 都要  輸入密碼

講客戶端的密鑰 放在 服務器上進行認證

服務器配置

RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

重啟sshd服務

service sshd restart  

在git 用戶目錄下 新建 .ssh 目錄

將客戶端公鑰文件寫入authorized_keys

chmod 600   authorized_keys

chmod 700 .ssh

在windows 的git gui  執行 git clone 看是否能克隆倉庫

修改文件 推動到主分支,看post_receive內的checkout 目錄有無變化

如果出現仍然輸入密碼之類的,檢查密鑰文件等的權限和所有者


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM