ssh Git+gitLab 安裝使用

安裝Git

  1. 在 Linux 上安裝
$ sudo yum install git
複製代碼
  1. 在wimdows安裝 下載地址,點擊下一步便可。

初次運行 Git 前的配置

  1. 配置用戶名密碼
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
複製代碼
  1. 檢查配置信息,可使用 git config --list 命令來列出全部 Git 當時能找到的配置。
$ git config --list
複製代碼
  1. 配置ssh遠程祕鑰鏈接
    1. 生成密鑰對
    cd ~/.ssh
    ls
    authorized_keys2  id_dsa       known_hosts config            id_dsa.pub
    複製代碼
    1. 看一下有沒有id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之類成對的文件),有 .pub 後綴的文件就是公鑰,另外一個文件則是密鑰。
    2. 假如沒有這些文件,甚至連 .ssh 目錄都沒有,能夠用 ssh-keygen 來建立。該程序在 Linux/Mac 系統上由 SSH 包提供,而在 Windows 上則包含在 MSysGit 包裏:
    $ ssh-keygen -t rsa -C "your_email@youremail.com"
    
     Creates a new ssh key using the provided email # Generating public/private rsa key pair.
    
     Enter file in which to save the key (/home/you/.ssh/id_rsa):
    複製代碼
    1. 直接按Enter就行。而後,會提示你輸入密碼,以下(建議輸一個,安全一點,固然不輸也行,應該不會有人閒的無聊冒充你去修改你的代碼):
    Enter same passphrase again: [Type passphrase again]
    複製代碼
    1. 完了以後大概這樣子
    Your public key has been saved in /home/you/.ssh/id_rsa.pub.
    The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com
    複製代碼
    1. 到此爲止,你本地的密鑰對就生成了。

添加公鑰到你的遠程倉庫(gitlub)

  1. 查看你生成的公鑰:
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0X6L1zLL4VHuvGb8aJH3ippTozmReSUzgntvk434aJ/v7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8vR3c8E7CjZN733f5AL8uEYJA+YZevY5UCvEg+umT7PHghKYaJwaCxV7sjYP7Z6V79OMCEAGDNXC26IBMdMgOluQjp6o6j2KAdtRBdCDS/QIU5THQDxJ9lBXjk1fiq9tITo/aXBvjZeD+gH/Apkh/0GbO8VQLiYYmNfqqAHHeXdltORn8N7C9lOa/UW3KM7QdXo6J0GFlBVQeTE/IGqhMS5PMln3 admin@admin-PC
複製代碼
  1. 登錄你的gitlub賬戶。點擊你的頭像,而後 Settings -> 左欄點擊 SSH and GPG keys -> 點擊 New SSH key
  2. 而後你複製上面的公鑰內容,粘貼進「Key」文本域內。 title域,本身隨便起個名字。
  3. 點擊 Add key。 完成之後,驗證下這個key是否是正常工做:
$ ssh -T git@github.com

Attempts to ssh to github
複製代碼

若是,看到:git

Hi xxx! You've successfully authenticated, but GitHub does not # provide shell access. 複製代碼

恭喜你,你的設置已經成功了。github

git使用

  1. 獲取 Git 倉庫
  2. 若是你打算使用 Git 來對現有的項目進行管理,你只須要進入該項目目錄並輸入:
$ git init

複製代碼

該命令將建立一個名爲 .git 的子目錄,這個子目錄含有你初始化的 Git 倉庫中全部的必須文件,這些文件是 Git 倉庫的骨幹。 可是,在這個時候,咱們僅僅是作了一個初始化的操做,你的項目裏的文件尚未被跟蹤。 3. 克隆現有的倉庫(ssh方式,不推薦http)web

$ git clone git@192.168.1.xxx:web/egoo-admin.git(倉庫地址)
複製代碼
  1. 檢查當前文件狀態,若是在克隆倉庫後當即使用此命令,會看到相似這樣的輸出:
$ git status
On branch master
nothing to commit, working directory clean
複製代碼

5.如今,讓咱們在項目下建立一個新的 README 文件。 若是以前並不存在這個文件,使用 git status 命令,你將看到一個新的未跟蹤文件:shell

$echo 'My Project' > README
$ git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)

    README

nothing added to commit but untracked files present (use "git add" to track)
複製代碼
  1. 跟蹤新文件,使用命令 git add 開始跟蹤一個文件。 因此,要跟蹤 README 文件,運行:
$ git add README
複製代碼
  1. 此時再運行 git status 命令,會看到 README 文件已被跟蹤,並處於暫存狀態:
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   README
複製代碼

只要在 Changes to be committed 這行下面的,就說明是已暫存狀態。 若是此時提交,那麼該文件此時此刻的版本將被留存在歷史記錄中。 你可能會想起以前咱們使用 git init 後就運行了 git add (files) 命令,開始跟蹤當前目錄下的文件。 git add 命令使用文件或目錄的路徑做爲參數;若是參數是目錄的路徑,該命令將遞歸地跟蹤該目錄下的全部文件。安全

  1. 提交更新,如今的暫存區域已經準備穩當能夠提交了。 在此以前,請必定要確認還有什麼修改過的或新建的文件尚未 git add 過,不然提交的時候不會記錄這些還沒暫存起來的變化。 這些修改過的文件只保留在本地磁盤。 因此,每次準備提交前,先用 git status 看下,是否是都已暫存起來了, 而後再運行提交命令 git commit:
$ git commit
複製代碼

另外,你也能夠在 commit 命令後添加 -m 選項,將提交信息與命令放在同一行,以下所示:bash

$ git commit -m "Story 182: Fix benchmarks for speed"
複製代碼

好,如今你已經建立了第一個提交! 能夠看到,提交後它會告訴你,當前是在哪一個分支(master)提交的,本次提交的完整 SHA-1 校驗和是什麼(463dc4f),以及在本次提交中,有多少文件修訂過,多少行添加和刪改過。 請記住,提交時記錄的是放在暫存區域的快照。 任何還未暫存的仍然保持已修改狀態,能夠在下次提交時歸入版本管理。 每一次運行提交操做,都是對你項目做一次快照,之後能夠回到這個狀態,或者進行比較。服務器

  1. 查看提交歷史,在提交了若干更新,又或者克隆了某個項目以後,你也許想回顧下提交歷史。 完成這個任務最簡單而又有效的工具是 git log 命令。
git log
 
 commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Mon Mar 17 21:52:11 2008 -0700

    changed the version number

commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 16:40:33 2008 -0700

    removed unnecessary test

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date:   Sat Mar 15 10:31:28 2008 -0700

    first commit
複製代碼

默認不用任何參數的話,git log 會按提交時間列出全部的更新,最近的更新排在最上面。 正如你所看到的ssh

  1. 遠程倉庫的使用,若是想查看你已經配置的遠程倉庫服務器,能夠運行 git remote 命令。
  2. 從遠程倉庫中抓取與拉取,就如剛纔所見,從遠程倉庫中得到數據,能夠執行:
$ git fetch [remote-name]
複製代碼

這個命令會訪問遠程倉庫,從中拉取全部你尚未的數據。 執行完成後,你將會擁有那個遠程倉庫中全部分支的引用,能夠隨時合併或查看。 必須注意 git fetch 命令會將數據拉取到你的本地倉庫 - 它並不會自動合併或修改你當前的工做。 當準備好時你必須手動將其合併入你的工做。 若是你有一個分支設置爲跟蹤一個遠程分支,可使用 git pull 命令來自動的抓取而後合併遠程分支到當前分支。 這對你來講多是一個更簡單或更舒服的工做流程;默認狀況下,git clone 命令會自動設置本地 master 分支跟蹤克隆的遠程倉庫的 master 分支(或不論是什麼名字的默認分支)。 運行 git pull 一般會從最初克隆的服務器上抓取數據並自動嘗試合併到當前所在的分支。ide

  1. 推送到遠程倉庫,當你想分享你的項目時,必須將其推送到上游。 這個命令很簡單:git push [remote-name] [branch-name]。 當你想要將 master 分支推送到 origin 服務器時(再次說明,克隆時一般會自動幫你設置好那兩個名字),那麼運行這個命令就能夠將你所作的備份到服務器:
git push origin master
複製代碼

只有當你有所克隆服務器的寫入權限,而且以前沒有人推送過期,這條命令才能生效。 當你和其餘人在同一時間克隆,他們先推送到上游而後你再推送到上游,你的推送就會毫無疑問地被拒絕。 你必須先將他們的工做拉取下來並將其合併進你的工做後才能推送。 13. 遠程倉庫的移除與重命名,若是想要重命名引用的名字能夠運行 git remote rename 去修改一個遠程倉庫的簡寫名。 例如,想要將 pb 重命名爲 paul,能夠用 git remote rename 這樣作:工具

$ git remote rename pb paul
$ git remote
origin
paul
複製代碼
相關文章
相關標籤/搜索