git命令?
#文件及文件夹创建删除
mkdir 文件名称 (创建文件夹)
touch 文件名称 (创建文件)
rm -r 文件名称 (递归删除)
rm -rf 文件名称 (删除文件夹内的所有 无提示)
rmdir 文件名称 (删除文件夹)
#查看.搜索.历史
ls -a 查看所有 (包括隐藏目录)
ls -l 查看 (以列表的形式显示)
head -行数 文件名称 (查看文件前多少行)
history (查看历史操作命令)
ls | grep s (| 管道符 用于传递参数 将ls的查询结果 作为参数传递给 grep 查找其中包含s的内容)
#复制.写入
ls >index.html (重定向:改变默认 重定向另一位置)
echo 内容>要写入的文件 (覆盖原有内容)
echo 内容>>要写入的文件 (追加内容)
mv a.text 目录/新名称 (移动)
cp a.text 目录/新名称 (复制)
#请求
wget 网址 (下载文件)
curl http://www.baidu.com (发送请求)
curl http://www.baidu.com > 要写入的文件
whoami (查看当前用户)
ssh status@192.168.141.95 (第一次请求 服务器会发来一个公钥 加密后 发给服务器 对方用自己的私钥解密 )
#vi模式
##底行模式
set nu (设置行号)
wq (退出保存)
q! (退出不保存)
/要搜索的内容 (在vi模式下 n为下一个目标元素 )
e! (撤销更改,返回到上一次保存的状态)
##命令模式
-u (撤销操作)
yy 复制 p粘贴
G (光标移动到最下面)
gg (光标移动到最上面)
dd (删除行)
i (编辑模式 可写入内容)
ZZ (大写 保存并退出)
u (辙销操作,可多次使用)
ctrl+f (向前翻页)
ctrl+b (向后翻页)
#版本控制
svn(集中式) : 缺点
1 由于是集中式版本控制系统所以严重依赖与服务器
2 严重依赖网络
Git(分布式)
1 不需要中央服务器 每个人一个完整的版本库
2 版本库来自本地 不受网络限制
#git的使用
##git命令
1 git init (初始化仓库 或将以后的克隆到本地.giy/)
2 git add -A (放入暂存区有三种方法 路径/名称 -A * )
3 git commit -m'备注信息' (从暂存区放入仓库)
4 git config --global user.email 邮箱 (config只需要配置一次)
git config --global user.name 用户名
5 git log (查看当前版本 以及历史存盘点)
6 git status (查看当前厂库状态 那些被修改了)
7 git checkout 文件名 (暂存区还原原到工作区)
8 git reset --hard 提交的id (每次提交时候都会生成一个id标示 git log可以查看)
##分支
git branch 分支名称 (创建分支)
git checkout 分支名称 (切换分支)
git checkout -b 分支名称 (快捷方式 创建并切换到新创建的分支)
git branch (查看有那些分支 -a[可选参数 所有本地+远程仓库分支])
git branch -d 分支名称 (删除分支 -D强行删除)
git merge 分支名称 (合并分支)
##远程仓库
##创建仓库条件
1 xxx.git结尾目录
2 必须是一个 '裸仓库' git init --bare
##远程操作
git push 账户名@地址id:路径 要上传的分支
git pull 账户名@地址id:路径 要上传的分支
git remote and itcast student@192.168.141.95:/home/student/itcast.git
git remote add 新名字(类似别名) 老地址 (自己起个文件名)
git remote (可以查看已添加的远程主机)
git remote show (主机名称”可以查看远程主机的信息)
##生成密钥
ssh-keygen -t rsa (后面一路回车 当前用户会生成一个.ssh文件夹)
id_rsa (密钥)
id_rsa.pu (共钥)
##git pages 网页托管
标签管理
创建标签
在Git中打标签非常简单,首先,切换到需要打标签的分支上:
$ git branch
* dev
master
$ git checkout master
Switched to branch 'master'
然后,敲命令git tag <name>
就可以打一个新标签:
$ git tag v1.0
可以用命令git tag
查看所有标签:
$ git tag
v1.0
默认标签是打在最新提交的commit上的。有时候,如果忘了打标签,比如,现在已经是周五了,但应该在周一打的标签没有打,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
$ git log --pretty=oneline --abbrev-commit
12a631b (HEAD -> master, tag: v1.0, origin/master) merged bug fix 101
4c805e2 fix bug 101
e1e9c68 merge with no-ff
f52c633 add merge
cf810e4 conflict fixed
5dc6824 & simple
14096d0 AND simple
b17d20e branch test
d46f35e remove test.txt
b84166e add test.txt
519219b git tracks changes
e43a48b understand how stage works
1094adb append GPL
e475afc add distributed
eaadf4e wrote a readme file
比方说要对add merge
这次提交打标签,它对应的commit id是f52c633
,敲入命令:
$ git tag v0.9 f52c633
再用命令git tag
查看标签:
$ git tag
v0.9
v1.0
注意,标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname>
查看标签信息:
$ git show v0.9
commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9)
Author: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 21:56:54 2018 +0800 add merge diff --git a/readme.txt b/readme.txt
...
可以看到,v0.9
确实打在add merge
这次提交上。
还可以创建带有说明的标签,用-a
指定标签名,-m
指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
用命令git show <tagname>
可以看到说明文字:
$ git show v0.1
tag v0.1
Tagger: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 22:48:43 2018 +0800 version 0.1 released commit 1094adb7b9b3807259d8cb349e7df1d4d6477073 (tag: v0.1)
Author: Michael Liao <askxuefeng@gmail.com>
Date: Fri May 18 21:06:15 2018 +0800 append GPL diff --git a/readme.txt b/readme.txt
...
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
操作标签:
如果标签打错了,也可以删除:
$ git tag -d v0.1
Deleted tag 'v0.1' (was f15b0dd)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>
:
$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
$ git push origin --tags
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
* [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9
Deleted tag 'v0.9' (was f52c633)
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9
To github.com:michaelliao/learngit.git
- [deleted] v0.9
要看看是否真的从远程库删除了标签,可以登陆GitHub查看。
操作标签
如果标签打错了,也可以删除:
$ git tag -d v0.1
Deleted tag 'v0.1' (was f15b0dd)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
如果要推送某个标签到远程,使用命令git push origin <tagname>
:
$ git push origin v1.0
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
* [new tag] v1.0 -> v1.0
或者,一次性推送全部尚未推送到远程的本地标签:
$ git push origin --tags
Total 0 (delta 0), reused 0 (delta 0)
To github.com:michaelliao/learngit.git
* [new tag] v0.9 -> v0.9
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
$ git tag -d v0.9
Deleted tag 'v0.9' (was f52c633)
然后,从远程删除。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9
To github.com:michaelliao/learngit.git
- [deleted] v0.9
要看看是否真的从远程库删除了标签,可以登陆GitHub查看。
小结
命令
git push origin <tagname>
可以推送一个本地标签;命令
git push origin --tags
可以推送全部未推送过的本地标签;命令
git tag -d <tagname>
可以删除一个本地标签;命令
git push origin :refs/tags/<tagname>
可以删除一个远程标签。
git命令?的更多相关文章
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
- 工作中常用的git命令
一 常用Git命令 git clone:(区分SSH or HTTP) git init:初始化仓库 二 Git命令详解 Git Bash下,cd /c git clone,从远程Git版本库克隆一份 ...
- 常用 Git 命令清单
我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...
- 常look的Git命令
常用的Git命令 命令 简要说明 git add 添加至暂存区 git add–interactive 交互式添加 git apply 应用补丁 git am 应用邮件格式补丁 git a ...
- ***Linux下使用git命令及github项目
在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen ##一直默认就可以了 3.将公钥加入到Github账户 ...
- 我所记录的git命令(非常实用)
一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...
- GIT命令行的使用
新手了解 有不对的地方指点下 首先, 了解下什么是GIT,GIT是一款开元的分布式版本控制工具, 在世界上的所有分布式版本控制工具中,GIT是最简单,最流行,同时也是最常用的 相比于其他版本的控制工具 ...
- 简明 Git 命令速查表(中文版)
原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...
- 常用 Git 命令清单 转
我每天使用 Git ,但是很多命令记不住. 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下 ...
- 日常开发使用GIT命令
git是一种分布式的版本管理工具,现在我总结下日常使用的git命令 1)检出 git clone 地址 --检出代码 #这里的地址是代码池的地址,如Github或bitbucket 2)增加文件 gi ...
随机推荐
- 人工智能之基于Opencv与深度学习的计算机视觉实战课程
https://www.bilibili.com/video/av66375362 imagewatch:https://blog.csdn.net/iracer/article/details/83 ...
- 01-scrapy框架
1.Scrapy图例: Scrapy Engine(引擎): 负责Spider.ItemPipeline.Downloader.Scheduler中间的通讯,信号.数据传递等. Scheduler(调 ...
- python学习之路(22)
使用模块 Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用. 我们以内建的sys模块为例,编写一个hello的模块: #!/usr/bin/env python # - ...
- 不属于java语言鲁棒性特点的是
A:java能检查程序在编译和运行时的错误 B:java能运行虚拟机实现跨平台 C:java自己操纵内存减少了内存出错的可能性 D:java还实现了真数组,避免了覆盖数据的可能 鲁棒性(Robus ...
- [LeetCode]-011-Integer_to_Roman
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- 原型模式故事链(4)--JS执行上下文、变量提升、函数声明
上一章:JS的数据类型 传送门:https://segmentfault.com/a/11... 好!话不多少,我们就开始吧.对变量提升和函数声明的理解,能让你更清楚容易的理解,为什么你的程序报错了~ ...
- @WebService这个标签的作用是什么
当实现 Web Service 时,@WebService 注释标记 Java 类:实现 Web Service 接口时,标记服务端点接口(SEI). (声明webservice服务) 要点: • 实 ...
- centos64位编译32位程序
test.c #include <stdio.h> int main() { printf("sizeof long is %d\n",sizeof(long)); ; ...
- 【HTTP/FTP客户端库】
[HTTP/FTP客户端库]资料来源:http://curl.haxx.se/libcurl/competitors.html Free Software and Open Source projec ...
- CentOS 6.7与CentOS 7.3内存查看命令free、top的差异对比
https://www.centos.bz/2017/08/centos-6-7-centos-7-3-free-top/