git入门基础

git基础

参考:
官网git基础

git 文件的生命周期

文件的生命周期图:

550820-20170411140144422-1645934450.png

git中的文件可以分为4个阶段.

  • Untracked : 这是目录中没有被跟踪的文件,即不在git项目中,使用 git commit 等命令对文件进行提交时不会提交这样的文件。只有使用 git add file_name 将文件添加到git 工程中,该文件才会得到分享,转换到Staged状态。除了这个状态,其他3个状态指的都是被跟踪的文件

  • Unmodified:git工程中没有经过改动的文件,即up-to-date的文件,处于当前状态的文件一旦被改动,则将会变文 Modified 状态。使用 git remove 指令可以将该状态下的文件变成Untraked 状态。

  • Modified:被改动过的文件待添加到 Staged 中的文件。

  • Staged : 等待更新到下一个生命周期的文件,commit 命令将会将处于该状态的文件进行提交,确认更改,这样一来文件又重新回到未修改状态,Unmodified。

git环境配置:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global core.editor emacs
$ git config --list

git 的基本命令

转到需要初始化的目录下,运行下面的命令,初始化一个已经存在的目录为git目录.

$ git init  

从github上克隆一个工程目录,下面两条指令中的一个,区别在于是否另起目录名

$ git clone /https://github.com/libgit2/libgit2  
$ git clone /https://github.com/libgit2/libgit2 NewDirectoryName  

获取文件状态 ,第二条指令表示状态的缩写版

$ git status  
$ git status -s 

跟踪新的文件,文件状态从 untracked 变成 staged。

$ git add YourNewFileName  

在目录下添加.gitignore文件,可以设置自动忽略的文件GitHub的ignore文件示例

查看已经被修改但没有Staged的文件

$ git diff  

查看staged中即将被commit的文件有什么不同

$ git diff --staged  

查看你目前已经Staged的所有文件

$ git diff --cached  

提交修改,即提交Staged状态下的文件
_其第一条指令会在terminal打开默认的编辑器,让你写入相关信心,可以使用:git config --global core.editor 命令设置编辑器

$ git commit   
$ git commit -m 'some message about your committing'  

删除文件

>从目录删除  
$ rm PROJECT.md             
>从stage删除  
$ git rm PROJECT.md   
>不再跟踪文件       
$ git rm --cached README     

Moving Files

$ git mv fileFrom fileTo  

查看日志 $ git log

550820-20170411120245110-809430545.png
550820-20170411120257735-533733520.png
550820-20170411120310469-759056657.png

撤销指令

撤销上一次commit操作  
$ git commit --amend  
将sraged中的文件撤回(unstaging a staged file)  
$ git reset HEAD CONTRIBUTING.md  
撤销你所做的修改(discard the changes you've made)  
$ git checkout -- CONTRIBUTING.md  

远程服务器

克隆一个远程项目    
$ git clone https://github.com/schacon/ticgit  
显示你的远程项目(Showing Your Remotes)  
$ git remote -v  
添加远程工程(Adding Remote Repositories)  
命令句式:git remote add <shortname> <url>  
$ git remote add pb https://github.com/paulboone/ticgit  
Fetching and Pulling Your Remotes  
$ git fetch [remote-name]  
$ git push [remote-name] [branch-name]  
Inspecting a Remote  
$ git remote show [remote-name]
$ git remote show origin  
Removing and Renaming Remotes  
$ git remote rename pb paul  
Removing (git remote remove or git remote rm)
$ git remote remove paul  

Tagging

list your Tags  
$ git tagv0.1v1.3  
search by pattern  
$ git tag -l "v1.8.5*"  
Create Tags and Annotated Tags  
$ git tag -a v1.4 -m "my version 1.4" ß
$ git show v1.4  

Lighweight Tags,轻量标签只存储校验和

$ git tag v1.4-lw  
$ git tag

为以前提交的版本设置标签,Tagging Later
首先使用git log 查看每个版本的校验和,然后使用git tag根据校验和设置标签,例子如下所示:

$ git log --pretty=oneline  
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support
0d52aaab4479697da7686c15f77a3d64d9165190 one more thing
6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function
4682c3261057305bdd616e23b64b0857d832627b added a todo file
166ae0c4d3f420721acbb115cc33848dfcc2121a started write support
9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile
964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo
8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme  
$ git tag -a v1.2 9fceb02  

分享标签,默认情况下,git push指令不会将标签上传到远程服务器上。这个操作需要自己显式的完成:git push origin [tagname]. 第二条指令式push所有标签。

$ git push origin v1.5  
$ git push origin --tags  

移除标签,在git中不能真正的删除标签。只能添加一个新的分支。(git checkout -b [branchname] [tagname]: )

$ git checkout -b version2 v2.0.0  
Switched to a new branch 'version2'  

Git Aliases

git中可以为变量名或者项目取缩写名,这个可以参考官网。

Github

https://help.github.com/articles/adding-a-remote/

转载于:https://www.cnblogs.com/fanling999/p/6692948.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 充电LED控制

1、前言 充电LED灯控制是Android设备的基本功能&#xff0c;主要用于提示设备的电池状态&#xff0c;充电状态&#xff0c;满电状态&#xff0c;低电状态&#xff0c;很多手机厂商还使用呼吸效果来显示&#xff0c;普通的低端设备会使用两个LED灯表示&#xff0c;红灯表示充电…

【PyAutoGUI操作指南】04 消息框功能+Question+Waring+Critical+自定义消息框

PyAutoGUI利用PyMsgBox中的消息框函数提供跨平台的纯Python方式来显示JavaScript样式的消息框。 5.1 alert&#xff08;&#xff09; import pyautoguipyautogui.alert(text这里写内容, title通知框标题位置, buttonOK)5.2 confirm() import pyautoguipyautogui.alert(text这…

js 弹出层的点击事件影响到底层的点击事件_聊一聊 Node.js 错误处理

个人博客&#xff1a;https://blog.skrskrskrskr.com错误分类软件程序中&#xff0c;我们可以将错误大致分为外部错误和内部错误两大类。外部错误是正确编写的程序在运行时产生的错误。它并不是程序本身的 bug&#xff0c;更多是一些外部原因导致的问题&#xff0c;比如请求超时…

spring-data-mongodb查询结果返回指定字段

方法1 DBObject dbObject new BasicDBObject(); dbObject.put("status", 1); DBObject fieldObject new BasicDBObject(); fieldObject.put("catalogName", true); fieldObject.put("_id", true); Query query new BasicQuery(dbObject, fiel…

老王带你理解算法复杂度O(1),O(N),O(N^2)

上图对应的是算法复杂度的图片&#xff0c;X轴对应的是n(问题规模)&#xff0c;Y轴对应的是执行的运行时间。 我们先从简单的复杂度解读O(1) 从上面的图片我们可以看到O(1)的复杂度是恒定的&#xff0c;一点波澜都没有&#xff0c;什么是O(1)呢&#xff0c;就比如你是一个酒店…

【PyAutoGUI操作指南】05 屏幕截图与图像定位:截图+定位单个目标+定位全部目标+灰度匹配+像素匹配+获取屏幕截图中像素的RGB颜色

6 屏幕截图与图像定位 PyAutoGUI可以拍摄屏幕截图&#xff0c;将其保存到文件中&#xff0c;并在屏幕中定位图像。OSX使用操作系统附带的screencapture命令。Linux使用scrot命令&#xff0c;可以通过运行sudo-apt-get-install-scrot来安装该命令。 功能介绍&#xff1a;一个需…

C语言-数组a 和a 的区别

面试经典题目 #include "stdio.h"int main() {int a[5] { 1,2,3,4,5 };int *ptr (int *)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));/*getchar是用VS编写方便查看输出*/getchar();return 0; }请思考一下上面的输出结果&#xff0c;如果你非常自…

使用export/import导出和导入docker容器

1、导出容器如果要导出本地某个容器&#xff0c;可以使用 docker export 命令&#xff0c;导出容器快照到本地文件。$ sudo docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAM…

前端为什么有的接口明明是成功回调却执行了.catch失败回调_前端进阶高薪必看-手写源码篇(高频技术点)...

前言此系列作为笔者之前发过的前端高频面试整理的补充 会比较偏向中高前端面试问题 当然大家都是从新手一路走过来的 感兴趣的朋友们都可以看哈初衷我相信不少同学面试的时候最怕的一个环节就是手写代码 大家一定听过这句话talk is cheap, show me the code 没事 此文章不仅包含…

C/C++函数指针与指针函数

前面说的话 面试的时候&#xff0c;经常有面试官问这个问题&#xff0c;在Linux内核里面也是经常被使用的&#xff0c;在看很多大神的代码里面&#xff0c;我们也经常遇到函数指针与指针函数&#xff0c;一样&#xff0c;如果你自己没问题了&#xff0c;就不用往下看了。 定义…

ImportError: TensorBoard logging requires TensorBoard with Python summary writer installed.

Tensorboard原本是Google TensorFlow的可视化工具&#xff0c;可以用于记录训练数据、评估数据、网络结构、图像等&#xff0c;并且可以在web上展示&#xff0c;对于观察神经网络的过程非常有帮助。 项目场景&#xff1a; 突然报如下错误&#xff0c;我以为是环境坏掉了&#…

jsp人事管理系统_Jsp+Ssm+Mysql实现的医院人事管理系统源码附带视频运行教程

项目地址&#xff1a;jspssmmysql实现的医院人事管理系统源码附带视频运行教程|猿来入此【beta】多用户版IT项目教程源码分享网站​www.yuanlrc.com今天给大家演示的是一款由jspssm&#xff08;springspringMVCmybatis&#xff09;实现的医院人事管理系统&#xff0c;系统比较简…

CODVES 5929 亲戚

5929 亲戚 时间限制: 1 s空间限制: 128000 KB题目等级 : 黄金 Gold题目描述 Description若某个家族人员过于庞大&#xff0c;要判断两个是否是亲戚&#xff0c;确实还很不容易&#xff0c;现在给出某个亲戚关系图&#xff0c;求任意给出的两个人是否具有亲戚关系。 规定&#x…

深度学习·理论篇(2023版)·第001篇快速了解人工智能与Pytorch:机器/表示/深度学习定义+端到端的学习+神经网络在计算机视觉应用+深度学习的技术蓝图

💕恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~ 🧡本文章为2021版本迭代更新版本,在结合有效知识的基础上对文章进行合理的增加,使得整个文章时刻顺应时代需要 🧡本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲…

linux kernel编译 undefined reference to `__ae

问题代码 ktime_t calltime, delta, rettime;unsigned long long duration;calltime = ktime_get();/*获取当前时间*/ rettime = ktime_get(); /*计算时间差 ktime_sub(A,B) 计算A-B的时间差 返回纳秒*/ delta = ktime_sub(rettime,calltime); /*转换成微秒*/ duration = (unsi…

CodeForces - 796D Police Stations bfs

思路&#xff1a;删除尽量多的边使得所有点都能在限制距离之内到达一个警局&#xff0c;删除边会形成多棵子树&#xff0c;最多只能k棵。其实就是以每个警局为根结点&#xff0c;把整棵树划分为以警局为根结点的k棵树&#xff0c;说明要删除的边的数量就是k-1条&#xff0c;即删…

python中list函数中variables变量_如何在Python中使用变量,浅谈,Pytorch,的,Variable,方法...

Variable的基本概念autograd.Variable 是包的核心类。它包装了张量&#xff0c;并且支持几乎所有的操作。一旦你完成了你的计算&#xff0c; 就可以调用.backward() 方法来自动计算所有的梯度。你还可以通过.data 属性来访问原始的张量&#xff0c;而关于该 variable(变量)的梯…

深度学习·理论篇(2023版)·第002篇深度学习和计算机视觉中的基础数学知识01:线性变换的定义+基于角度的线性变换案例(坐标变换)+点积和投影+矩阵乘法的几何意义+图形化精讲

💕恭喜本博客浏览量达到两百万,CSDN内容合伙人,CSDN人工智能领域实力新星~ 🧡本文章为2021版本迭代更新版本,在结合有效知识的基础上对文章进行合理的增加,使得整个文章时刻顺应时代需要 🧡本专栏将通过系统的深度学习实例,从可解释性的角度对深度学习的原理进行讲…

RK3288/RK3399 CPU定频方法

直接上方法 查看cpu能支持的频率 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 写入userspace说明要用户设定频率 echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 写入上面列出的cpu频率 echo 1608000 > …

notepad++正则表达式去掉关键字所在行

如下图 1、选择正则表达式 2、选择匹配大小写 3、^(.*)KERNEL(.*)$\n 加上\n就是把去除的行删除&#xff0c;不加就算把删除的行替换为空格