學習小筆記---git 安裝與使用

一、安裝git

1、LINUX

查看是否安裝git:

$ git

The program 'git' is currently not installed. You can install it by typing:

sudo apt-get install git


Debian或Ubuntu Linux,通過一條 sudo apt-get install git 就可以直接完成Git的安裝


老一點的Debian或Ubuntu Linux,寫sudo apt-get install git-core


其他Linux版本,可以直接通過源碼安裝。先從Git官網下載源碼,然後解壓,依次輸入:./config,make,sudo make install這幾個命令安裝就好了


2、Mac OS X

如果你正在使用Mac做開發,有兩種安裝Git的方法。


第一種是安裝homebrew,然後通過homebrew安裝Git,具體方法請參考homebrew的文檔:http://brew.sh/。


第二種方法更簡單,也是推薦的方法,就是直接從AppStore安裝Xcode,Xcode集成了Git,不過默認沒有安裝,你需要運行Xcode,選擇菜單“Xcode”->“Preferences”,在彈出窗口中找到“Downloads”,選擇“Command Line Tools”,點“Install”就可以完成安裝了


3、Windows

從http://msysgit.github.io/下載,安裝

Git->Git Bash,能彈出命令行窗口說明安裝成功

最後設置,在命令行中:

$ git config --global user.name "Your Name"

$ git config --global user.email "[email protected]"


查看 git config命令的--global參數


二、創建版本庫 repository

1、選擇創建目錄

$ mkdir learngit

$ cd learngit

$ pwd                  //pwd命令用於顯示當前目錄


2、通過git init命令把這個目錄變成Git可以管理的倉庫

$git init


此目錄下會出現 .git目錄,如果你沒有看到.git目錄,那是因爲這個目錄默認是隱藏的,用ls -ah命令就可以看見


3、操作

文件添加到倉庫

$git add test.txt


提交所添加文件到倉庫

$git commit -m "wrote a test file"         //-m後面輸入的是本次提交的說明


總結:

初始化一個Git倉庫,使用git init命令。


添加文件到Git倉庫,分兩步:

第一步,使用命令git add <file>,注意,可反覆多次使用,添加多個文件;

第二步,使用命令git commit -m,完成


三、修改文件

$ git status 命令查看結果

$ git diff 命令查看修改內容

$ git add <file>

$ git commit -m ""

$ git log 命令查看全部修改記錄          //q退出 

//最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file

加上 --pretty=oneline 


返回到以前的版本:

$ git reset --hard HEAD^      //HEAD爲當前版本,上一個版本就是HEAD^,上上版本HEAD^^,上100個版本 HEAD~100


進入到未來的版本        //需要commit id  例如:3628164...

$ git reset --hard 3628164


查看所有commit id

$ git reflog


撤銷修改

$ git chechout -- <file>       //直接丟棄工作區的修改

$ git reset HEAD file         //把暫存區的修改撤銷掉


刪除文件

工作區:$ rm <file>

版本庫:$ git rm 再git commit 

誤刪恢復:$ git checkout -- <file>


四、遠程倉庫

在.ssh文件夾中需要id_rsa和id_rsa.pub文件

如果沒有:$ ssh-keygen -t rsa -C "email"


添加遠程庫

登錄GitHub,Create a new repo,創建一個新倉庫

$ git remote add origin [email protected]:michaelliao/lenrngit.git


把本地的數據推送到遠程庫上

$ git push -u origin master


從遠程庫克隆

Initialize this repository with a README

克隆本地庫:

$ git clone [email protected]:michaellian/gitskills.git

$ cd gitskills      //進入文件夾

$ ls         //展現文件


Git支持多種協議,包括https,但通過ssh支持的原生git協議速度最快


五、分支管理

主分支:master

$ git checkeout -b <name>       //創建分支;git checkout 再加上 -b參數表示創建並切換

$ git branch      //查看當前分支

$ git branch <name>    //創建分支

$ git checkout <name>      //切換分支

$ git merge <name>     //命令用於合併指定分支到當前分支

$ git branch -d <name>      //刪除分支


$ git log --graph     //查看分支合併圖

$ git merge --no--ff -m "" <name>     //--no--ff表示禁用fast forward,因爲本次合併要創建一個新的commit,所以 -m 參數

$ git stash       // 儲藏

$ git stash list       //查看儲藏內容

$ git stash apply      //恢復儲藏,stash內容不刪除

$ git stash drop       //刪除儲藏

$ git stash pop       //恢復,同時刪除儲藏   

$ git stash apply stash@{0}        //恢復指定儲藏


$ git remote       //查看遠程庫信息

$ git remote -v      //查看詳細信息

$ git push origin <branch-name>         //推送分支到遠程庫

$ git pull origin dev:dev        //拉取遠程資源

$ git checkout -b branch-name origin/branch-name       //在本地創建和遠程分支對應的分支,本地和遠程分支的名稱最好一致

$ git branch --set-upstream branch-name origin/branch-name     //建立本地分支和遠程分支的關聯


六、標籤

$ git tag <name>        //創建新標籤

$ git tag           //查看所有標籤

$ git tag <commit id>      //給指定commit加標籤

$ git show <tagname>      //查看標籤信息

$ git tag -a <tagname> -m "說明"     //添加說明

$ git tag -s <tagname> -m ""       //用PGP簽名標籤


$ git push origin <tagname>     //把指定標籤推送到遠程

$ git push origin --tags        //推送所有標籤

$ git tag -d <tagname>         //刪除指定標籤

$ git push origin :refs/tags/<tagname>     //刪除遠程的標籤


七、自定義git

$ git config --global color.ui true       //讓git顯示顏色


$ git config --global alias.st status         //status設置爲st

配置文件.git/config

$ cat .git/config           //查看配置文件


八、搭建git服務器

第一步:安裝git

$ sudo apt-get install git


第二步:創建一個git用戶,用來運行git服務

$ sudo adduser git


第三步:創建證書登錄

收集所有需要登錄的用戶公鑰,id_rsa.pub,導入到/home/git/.ssh/suthorized_keys中


第四步:初始化git倉庫

選定倉庫目錄,假定/srv/sample.git,在/srv目錄下

$ sudo git init --bare sample.git

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因爲服務器上的Git倉庫純粹是爲了共享,所以不讓用戶直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git結尾。然後,把owner改爲git

$ sudo chown -R git:git sample.git


第五步:禁用shell登錄

出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行

git:x:1001:1001:,,,:/home/git:/bin/bash   改爲

git:x:1001:1001:,,,:/home/git:/user/bin/git-shell 

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因爲我們爲git用戶指定的git-shell每次一登錄就自動退出


第六步:克隆遠程倉庫

$ git clone git@server:/srv/sample.git


要方便管理公鑰,用Gitosis

要像SVN那樣變態地控制權限,用Gitolite



常用命令:

vi filename進入編輯模式   wq退出編輯模式


git init 

git remote add origin git@git....

git pull origin dev

git status

git add <file>

git commit -m "寫提交內容"

git push origin dev:dev//上傳本地到遠程

git pull origin dev:dev//下載遠程到本地

git log//查看本地倉庫


教程網址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章