git的常用的使用方法

apt-get install git #Ubuntu 下安装git
yum install git # Centos下安装git
#安装git之后简单的设置
git config --global user.name "joedlut"
git config --global user.email "[email protected]"

创建一个版本库(git仓库)

mkdir /home/joedlut/learngit #常见一个目录
cd /home/joedlut/learngit
git init # 创建版本库,即让该目录下的文件可以被git管理

如何向仓库中添加文件?

cd /home/joedlut/learngit # 要想让git管理文件,必须将文件放到git仓库中
vim readme.txt # 添加两行数据
git add readme.txt #将文件添加到仓库中
git commit -m "add a readme.txt" #将文件提交到仓库中 -m指定提交的说明,建议不要省略
# 可以一次添加多个文件,然后一次性提交 如下
git add file1.txt
git add file2.txt file3.txt
git commit -m ‘add three files‘

查看仓库的状态

git status #可以看到那些文件做出了修改但是没有提交到版本库

查看仓库的一个文件具体改动了什么

git diff readme.txt  #格式和linux下的diff命令显示的内容一样

将一个文件的修改提交到版本库 (分两步 add 与commit)

git add readme.txt #注意 添加修改同样使用的是add
git commit -m ‘modified the content of readme.txt‘

查看版本库的提交记录(方便做后面的回退操作)

git log #由近及远的显示提交日志
git log --pretty=oneline # 同样显示提交日志,但是输出信息相比git log得到了简化

利用git可以回退到版本库在历史中的任意一个版本,git使用HEAD表示当前版本,使用HEAD^表示上一个版本,使用HEAD^^表示上上一个版本 那如何会退到上一个版本呢

git reset --hard HEAD^

如何会退到历史的某个版本后, 又想再回到原来新的版本,此时要想回到原先“未来”的版本,必须知道当时未来版本的提交号 也是就是commit_id 查看这个commit_id可以使用reflog

git reflog #这个命令可以显示每一次git执行的命令
git reset --hard commit_id # 这个id是你想回到的版本的commit_id

git的区域分为工作区和暂存区,我们对于文件的修改都是在工作区内完成的,git add做的事情就是将新建的文件后者文件的修改添加到暂存区,文件只有在暂存区下才可以被跟踪管理,git commit做的事情就是将暂存区的修改一次性提交到分支。由此可见,修改必须添加到(git add)暂存区中才可以被提交

查看工作区与版本库里最新版本的区别

git diff HEAD -- readme.txt

如何撤销文件的修改?分为两种情况

第一种 修改了文件但是没有使用git add将文件的修改添加到暂存区的

git checkout -- readme.txt # 注意不要省略--  否则会变成切换到另一个分支的命令

第二种 已经将文件的修改使用git add提交到了暂存区

git reset HEAD readme.txt #撤销暂存区的修改
git checkout -- readme.txt

如何从版本库中删除一个文件?注意,从版本库中删除一个文件,就无法恢复了

git rm test.txt
git commit -m ‘remove test.txt‘

如何仅仅是从工作区中删除了一个文件,而没有从版本库中删除一个文件,则可以恢复这个文件

git checkout -- test.txt

如何连接到git仓库?

ssh-keygen -t rsa -C ‘[email protected]‘
cd  ~/.ssh
将公钥id_rsa.pub添加到github端

将本地库与远程库相关联

git add remote origin [email protected]:joedlut/learngit.git #origin是远程库的名字,建议是origin
#假设远程库上
git push -u origin master #将本地库的内容推送到远程库,注意,第一次推送要使用-u选项,-u会将本地的master与远程master关联
git push origin master # 之后每次本地做了修改,可以通过该命令实现本地库与远程库的同步

假设github有个远程库gitskills 如何将该库克隆到本地?

git clone [email protected]:joedlut/gitskills.git

创建一个分支dev,,并且切换到该分支

git checkout -b dev #相当于两条命令git branch dev ; git checkout dev

查看分支

git branch #查看所有分支,当前分支会带有一个*号

切换到master分支

git checkout master

将dev分支合并到master分支

git merge dev # 默认会采用fast-forward的方式合并

删除dev 分支

git branch -d dev

当master分支与另一个分支(feature1)都有git add 跟git commit操作的时候,合并分支的时候会发生冲突而失败,此时应该解决冲突之后再执行git add 和git commit,然后再执行git branch -d  feature1

查看分支的合并情况

git log --graph --pretty=oneline

git merge默认会采用fast-forward方式,此时会丢失分支信息(即使用git log查看的时候不会显示分支的合并),要想保存分支信息,可以使用--no-ff选项

git merge -no-ff feature1
git log --graph --pretty=oneline --abbrev-commit

当在dev分支工作时候,需要临时修改bug的时候,可以使用git stash保存现场后,在切换到master分支,然后在创建bug分支,修改bug后再返回到master分支,合并bug分之后,返回dev分支后,在使用git stash pop 恢复现场,完整过程如下

git stash  # dev分支
git checkout master
git checkout -b bug101
############ 修改bug git add git commit....###############
git checkout master
git merge --no-ff bug101
git checkout dev
git stash list # 查看保存的现场信息
git stash pop # 恢复现场,并且删除现场信息,即通过git stash list看不到任何内容

如果需要添加一个新功能,需要创建一个feature分支,当在该feature分支上执行git add和git commit,没有执行合并(git merge)的话,无法通过git branch -d feature 删除该分支,若要强行删除该分支,需要执行

git branch -D feature #强行删除该分支

查看远程库的信息

git remove -v # -v选项显示详细信息
时间: 2024-10-14 15:05:41

git的常用的使用方法的相关文章

git bash 常用操作文件命令

git bash常用操作文件命令 在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux 命令 意义 Windows命令 Linux 命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pwd 显示当前目录路径 dir ls 列出当前目录内容 copy nul xxx.txt touch xxx.txt 生成名为xxx.txt的空文件 del xxx.txt rm xxx.txt 删除xxx.txt文件 m

git的常用命令

 git的常用命令 一.bash的简单命令 注意:首字母都是小写 1.Pwd 查看当前目录 2.Cd /e 切换到e盘 3.Cd 文件夹名称   切换到下一个目录 4.Cd ../ 返回上一级目录 5.Ls 查看当前目录的内容  (canvas/ 是文件夹) 6.Ls -a 查看所有文件 -a 是all的意思 7.Mkdir hello创建目录(文件夹)名为hello 8.Touch test.txt 创建文件test.txt 9.Cat 文件名 查看文件中的内容 10.Wc 文件名  统计文件

结合Scikit-learn介绍几种常用的特征选择方法

作者:Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减少特征数量.降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的.通常情况下,我们经常不管三七二十一,选择一种自己最熟悉或者最方便的特征选择方法(往往目的是降维,而忽略了对特征和数据理解的目的).

常用跨域方法实践(一)

这几天看了鬼道师兄的<跨终端Web>这本书,该书从解决实际业务出发,讲述了跨终端的优势与未来,受益良多.其中,书中第九章介绍了作者在阿里内部的一个参赛作品Storage,该作品巧妙的使用了跨域知识,让我见识到跨域其实不仅仅是JSONP.以前,对前端跨域这块或多或少有点了解,但真正动手实践的不是很多.于是,这段时间我好好整理了常用跨域方法的具体实现.本文,主要介绍了JSONP和CORS的实现方式. 相关概念: 只要协议.域名.端口有任何一个不同,都被当作是不同的域 JavaScript出于安全方

SVG DOM常用属性和方法介绍

将以Adobe SVG Viewer提供的属性和方法为准,因为不同解析器对JavaScript以及相关的属性和方法支持的程度不同,有些方法和属性是某个解析器所特有的.SVG支持DOM2标准. 12.2.1  文档初始化相关 evt属性 evt表示事件本身,可以通过evt获取与当前事件相关的信息,用户可以在script中定义响应函数,进行相应的处理.它与普通JavaScript脚本中的event基本相同,只不过在普通JavaScript的脚本中简写成“e”. ownerDocument属性 通过引

数据归一化和两种常用的归一化方法

数据标准化(归一化)处理是数据挖掘的一项基础工作,不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性.原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价.以下是两种常用的归一化方法: 一.min-max标准化(Min-Max Normalization) 也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0 - 1]之间.转换函数如下: 其中max为样本数据的最大

干货:结合Scikit-learn介绍几种常用的特征选择方法

原文  http://dataunion.org/14072.html 主题 特征选择 scikit-learn 作者: Edwin Jarvis 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解数据的特点.底层结构,这对进一步改善模型.算法都有着重要作用. 特征选择主要有两个功能: 减少特征数量.降维,使模型泛化能力更强,减少过拟合 增强对特征和特征值之间的理解 拿到数据集,一个特征选择方法,往往很难同时完成这两个目的.通常情况下,我

BP神经网络设计常用的基本方法和实用技术

尽管神经网络的研究和应用已经取得巨大成功,但在网络的开发设计方面至今仍没有一套完善的理论做指导,应用中采取的主要设计方法是,在充分了解待解决问题的基础上将经验与试探相结合,通过多次改进性试验,最终选出一个较好的设计方案.下面是在开发神经网络中常用的基本方法和实用技术. (1)  网络信息容量与训练样本数 多层神经网络的分类能力与网络信息容量相关,如果网络的权值和阈值总数nw表征网络信息容量,研究表明,训练样本数N与给定的训练误差ε之间应满足以下匹配关系: N = nw / ε. 上式表明网络的信

iPone应用开发 UIView 常用属性和方法

iPone应用程序开发 UIView常用属性和方法 常用属性 alpha 视图的透明度0.0f - 1.0f backgroundColor 视图的背景颜色 subviews 子视图的集合 hidden 视图是否隐藏 tag 视图的唯一标示符,是一个整形数据 superview 视图的父视图 multipleTouchEnabled 是否开启多点触控 userInteractionEnable 是否响应触摸事件 常用方法 - (void)removeFromSuperview; //从父视图中删