gitlab命令行使用(基础篇)

内容简介:git 是分布式代码管理工具,越来越多的企业使用它。所以掌握git的使用至关重要。它的远端管理是基于ssh,所以在使用远端git的时候需要进行ssh配置。ssh是一种免密登录,使用的rsa非对称加密来进行服务器认证;执行结果:

本文转载自:https://segmentfault.com/a/1190000018258258,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有

git 是分布式代码管理工具,越来越多的企业使用它。所以掌握git的使用至关重要。它的远端管理是基于ssh,所以在使用远端git的时候需要进行ssh配置。

ssh是一种免密登录,使用的rsa非对称加密来进行 服务器 认证;

一、git 的ssh配置如下

首先你需要拥有gitlab或是github的一套账号,然后设置git的user name 和 user email:

# git 全局设置账号git config --global user.name "your name"git config --global user.email "your e-mail"

根据 user name 和 user email 生成自己的ssh密钥

cd $USER

cd .ssh #如果存在,需要备份可以备份下,如果不需要可以直接覆盖ssh-keygen -t rsa -C "your e-mail" #生成 ssh

执行结果:

最终得到 id_rsa 和 id_rsa.pub

gitlab上面添加ssh密钥,使用文件 id_rsa.pub。

打开 https://gitlab.company.com/ ,使用自己账号登录,然后添加ssh密钥;

主页头像 -> profile -> SSH Keys -> Add key

将id_rsa.pub文件中的内容添加上去,然后点击Add key;


测试 ssh 链接gitlab.company.com

ssh [email protected]#会出现如下提示,说明链接成功The authenticity of host 'gitlab.company.com (100.98.137.229)' can't be established.

RSA key fingerprint is SHA256:WiQ1s8RKGjQpO0ICFY3NV2Hs0axwIbrv6j6q0XJsdsc.

RSA key fingerprint is MD5:6c:8d:0f:09:31:c9:08:9b:67:48:09:7c:d9:46:65:3e.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'gitlab.company.com,100.98.137.229' (RSA) to the list of known hosts.

PTY allocation request failed on channel 0

Welcome to GitLab, your name!

Connection to gitlab.company.com closed.

二、git 的简单使用

创建一个新的仓库

git clone [email protected]:yaoname/my-test-git-project.git

cd my-test-git-project

touch README.md

git add README.md

git commit -m "add README"git push -u origin master

touch .gitignore

vi .gitignore #编辑git add .gitignore

git commit -m "add .gitignore"git push -u origin master

本地仓库和远端仓库建立连接

cd existing_folder

git init

git remote add origin [email protected]:yourname/my-test-git-project.git

git add .git commit

git push -u origin master

git基本操作讲解

The most commonly used git commands are:  add        Add file contents to the index

  bisect    Find by binary search the change that introduced a bug

  branch    List, create, or delete branches

  checkout  Checkout a branch or paths to the working tree

  clone      Clone a repository into a new directory

  commit    Record changes to the repository

  diff      Show changes between commits, commit and working tree, etc

  fetch      Download objects and refs from another repository

  grep      Print lines matching a pattern

  init      Create an empty Git repository or reinitialize an existing one

  log        Show commit logs

  merge      Join two or more development histories together

  mv        Move or rename a file, a directory, or a symlink

  pull      Fetch from and merge with another repository or a local branch

  push      Update remote refs along with associated objects

  rebase    Forward-port local commits to the updated upstream head

  reset      Reset current HEAD to the specified state

  rm        Remove files from the working tree and from the index

  show      Show various types of objects

  status    Show the working tree status

  tag        Create, list, delete or verify a tag object signed with GPG

git 仓库初始化

git init

git 生成快照并且存入项目索引

git add .  #或 git add * 提交所有文件git add README.md #提交指定文件git add folder/ #提交某个文件夹下面的所有文件

git 将项目多索引提交到本地仓库的当前分支下

git commit -m '注解'

git 将远端仓库信息更新到本地,并且merge到本地分支

git pull origin master

git 推送当前分支到远端分支

git push origin master

git 将远端仓库信息更新到本地,不合并到本地分支

git fetch

git 创建分支操作

git branch -a #查看所有分支git branch --list #查看本地分支git branch feature/20181017.business.chao #创建分支git checkout feature/20181017.business.chao #切换分支#或直接创建并且切换git checkout -b feature/20181017.business01.chaogit push origin feature/20181017.business01.chao #推送到远端git pull origin feature/20181017.business01.chao #从远端拉取#删除git branch -d/-D feature/20181017.business01.chao #删除本地git push origin --delete feature/20181017.business01.chao #删除远端分

git 查看当前分支的状态

git status

git merge合并分支

#当前分支 git checkout feature/20181017.business01.chaotouch 1.txtvi 1.txt # 编辑内容然后提交到远端git checkout git checkout feature/20181017.business.chao

git merge feature/20181017.business01.chao #合并本地分支

git grep 查找当前分支文件中的内容

git grep --text "test" #使用git grep -h 查看更多用法

git diff 比较分支

git diff master #比较两个分支的不同

git log 查看commit记录

git log -n 10 #查看最近10条提交记录

git rm 删除文件以及索引

touch 2.txtgit add 2.txtgit commit -m 'add 2.txt'git rm 2.txt #删除已经提交到本地仓库的文件

git tag 一般用来管理【里程碑】

git checkout master

git tag --list #查看所有标签git tag v1.0 #添加taggit tag --list 'v1.*' # 列出version为1的所有子版本

git show 获取项目的详细信息

git show #展示项目的各种类型commit eaa7f945204bed8f2b01d284d99fcf0b3ac3029eAuthor: chao Date:  Wed Oct 17 06:16:26 2018 +0000    add README

diff --git a/README.md b/README.mdnew file mode 100644index 0000000..7088fed--- /dev/null+++ b/README.md@@ -0,0 +1,5 @@++# this is repositry

git rebase 重置当前的操作options,写的不错 rebase详解

git rebase branchName #消除本分支下面的commit

git rebase --continue #在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行

git rebase --abort #在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态

git stash 储藏(临时保存到git栈中,独立于git分支管理之外。那个分支使用恢复到哪个分支就行了)

#储藏使用名称和不使用名称保存未提交到仓库的(暂存和非暂存)git stash

git stash save "stash-name-1"#变更统计git stash show#每次储藏git stash list#恢复到git版本管理中git stash pop #弹出栈#通过名字使用储藏git stash apply #删除git stash drop#清空git stash clear#直接使用stash创建分支git stash branch testbranch

git revert 向前滚动的方式回滚,不会丢失源代码

git revert commit_id

git reset 使用HEAD的状态的方式回滚,会丢失源代码

git reset --hard HEAD^        #回退到上个版本git reset --hard HEAD~3        #回退到前3次提交之前,以此类推,回退到n次提交之前git reset --hard commit_id    #退到/进到 指定commit的sha码git push origin HEAD --force  #强推到远端,使用git push 推送推送失败

git bisect 通过二进制搜索找到引入错误的更改

git bisect start #开启查找git bisect good v2.6.18

git bisect bad master #查找报错的版本

删除并忽略已经加入到git仓库的文件

#查找到对应的文件find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch#加入git忽略echo .DS_Store >> ~/.gitignore#addgit add --all#提交忽略git commit -m '.DS_Store banished!'

你可能感兴趣的:(gitlab命令行使用(基础篇))