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

一、git 的ssh配置如下

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

1、全局配置账号

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

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

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

执行结果:

最终得到 id_rsa 和 id_rsa.pub

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

打开https://gitlab.company.com/ ,使用自己账号登录,然后添加ssh密钥;
主页头像 -> profile -> SSH Keys -> Add key


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

4、测试 ssh 链接gitlab.company.com

ssh git@gitlab.company.com#会出现如下提示,说明链接成功
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 git@gitlab.company.com: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 mastertouch .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 git@gitlab.company.com: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 indexbisect     Find by binary search the change that introduced a bugbranch     List, create, or delete branchescheckout   Checkout a branch or paths to the working treeclone      Clone a repository into a new directorycommit     Record changes to the repositorydiff       Show changes between commits, commit and working tree, etcfetch      Download objects and refs from another repositorygrep       Print lines matching a patterninit       Create an empty Git repository or reinitialize an existing onelog        Show commit logsmerge      Join two or more development histories togethermv         Move or rename a file, a directory, or a symlinkpull       Fetch from and merge with another repository or a local branchpush       Update remote refs along with associated objectsrebase     Forward-port local commits to the updated upstream headreset      Reset current HEAD to the specified staterm         Remove files from the working tree and from the indexshow       Show various types of objectsstatus     Show the working tree statustag        Create, list, delete or verify a tag object signed with GPG

1、git 仓库初始化

git init

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

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

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

git commit -m '注解' 

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

git pull origin master

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

git push origin master

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

git fetch

7、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.chao
git 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 #删除远端分

8、git 查看当前分支的状态

git status 

9、git merge合并分支

#当前分支 git checkout feature/20181017.business01.chao
touch 1.txt
vi 1.txt # 编辑内容然后提交到远端
git checkout git checkout feature/20181017.business.chao
git merge feature/20181017.business01.chao #合并本地分支

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

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

11、git diff 比较分支

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

12、git log 查看commit记录

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

13、git rm 删除文件以及索引

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

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

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

15、git show 获取项目的详细信息

git show #展示项目的各种类型commit eaa7f945204bed8f2b01d284d99fcf0b3ac3029e
Author: chao <chao@yourcompany.com>
Date:   Wed Oct 17 06:16:26 2018 +0000add READMEdiff --git a/README.md b/README.md
new file mode 100644
index 0000000..7088fed
--- /dev/null
+++ b/README.md
@@ -0,0 +1,5 @@
+
+# this is repositry

16、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开始前的状态

17、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

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

git revert commit_id 

19、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 推送推送失败

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

git bisect start #开启查找
git bisect good v2.6.18
git bisect bad master #查找报错的版本

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

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

git 命令行使用(基础篇)相关推荐

  1. 【git系列】git命令之撤销回退篇

    撤销工作区修改 工作区修改代码,并未存入暂存区. 适用场景:工作区对某段逻辑代码进行优化,突然发现存在一定的问题,性能不一定比之前提交的代码优秀,放弃本次对文件的修改. #撤销指定文件 git che ...

  2. 07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)...

    GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ---------------------------------------- ...

  3. git命令看一这篇就够了

    git最最基本命令(怎么克隆.上传) #(将远程仓库的代码克隆到本地) git clone + 远程仓库地址 #(将工作区的改动添加到暂存区) git add . #(将暂存区的文件提交到本地库) g ...

  4. g4e基础篇#1 为什么要使用版本控制系统

    本篇是Git企业开发者教程基础篇的第一篇 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 初始化Git存储库(Repo) 起步 1 – 创建分支和保存代 ...

  5. git命令详解( 六 )

    此为git命令的第六篇 远程跟踪分支 不知道大家有没有发现在前面几篇中Git 好像知道 master 与 o/master 是相关的.当然这些分支的名字是相似的,可能会让你觉得是依此将远程分支 mas ...

  6. git命令详解( 三 )

    此篇为git命令的第三篇 目录 git Pull 模拟团队合作 Git Pull 在上一篇的结尾我们已经知道了如何用 git fetch 获取远程的数据, 现在我们学习如何将这些变化更新到我们的工作当 ...

  7. g4e基础篇#6 了解Git历史记录

    Git的版本历史记录采用了与传统集中式版本管理系统完全不同的方式进行组织,在刚开始使用Git的时候我们往往会不知所措,比如看到这样的历史记录. 看到这个七拐八拐的图形,你可能完全不知道它代表了什么.其 ...

  8. g4e基础篇#4 了解Git存储库(Repo)

    Git 存储库看上去就是一个文件夹,只是在这个文件夹中不仅仅保存了所有文件的当前版本,也同时保存了所有的历史记录,这些额外的信息都保存在当前文件夹下面的.git子目录中.因为前面我们所描述的git跟踪 ...

  9. g4e基础篇#3 Git安装与配置

    现在你已经对Git有了最基本的了解,现在让我们开始动手开始安装和配置Git环境. Git工具包括Git命令行工具,图形化工具和服务器环境:在我们这个教程中,我们会使用以下软件配置我们的环境: • Wi ...

最新文章

  1. PCB Editor 布线后操作
  2. NHbiernate 配置
  3. UVA11375火柴(递推+大数)
  4. 决策树 随机森林 xgboost_决策树算法之随机森林
  5. 深度学习 vs. 大数据:神经网络权值的版权属于谁?
  6. 爆款不是运气:网易产品布局背后的6大标准框架
  7. MySQL(2)数据库管理
  8. mysql数据库(10):数据 备份
  9. P3052 [USACO12MAR]摩天大楼里的奶牛Cows in a Skyscraper [模拟退火]
  10. 剑指offer(C++)-JZ76:删除链表中重复的结点(数据结构-链表)
  11. 施耐德 m340 编程手册_施耐德PLC漏洞历险记
  12. 电脑qq空间,qq空间电脑版
  13. Oracle数据库优化-列值大部分为null而谓词取非null值
  14. AltiumDesigner PCB案牍(3)—— PADS工程文件导入AD
  15. 人工智能数学基础-内积和外积
  16. c语言快速判断一个数是偶数还是奇数
  17. VirtualLab基础实验教程-2.牛顿环
  18. 深度学习在静息态功能磁共振成像中的应用
  19. 有趣python小程序系列之二
  20. 学习C#的党的学习路线,请教高手

热门文章

  1. 测试android兼容性测试工具,Android兼容性测试工具Spoon
  2. python的函数式编程_Python函数式编程-概念理解,python
  3. 两个三维图像互信息python_python – 使用numpy计算成对互信息的最佳方式
  4. Java入门超简单程序Song List
  5. (四)系统虚拟化关键技术
  6. 【分享】2019张小龙微信公开课要点整理
  7. 【项目管理】敏捷小品:Rupert 工业公司 项目:~Alpha~
  8. select2 手动输入匹配下拉框内容可多选
  9. 《系统集成项目管理工程师》必背100个知识点-19项目管理计划的内容
  10. 若依前后端分离/微服务版怎样构造免密链接实现其他系统免登录访问