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
复制代码
相关文章
相关标签/搜索