入门Git

本文是我在[实验楼]这个平台学习git时的第一篇学习笔记,现贴出来以飨大家!

git学习

1、git的配置

git的配置主要通过git config --global <配置名称> <配置的值>来对git进行配置

其中最常用的配置为:

git config --global user.name name
git config --global user.email email

完成配置后,配置信息会存在于一个隐藏文件中:.gitconfig。可以通过cat .gitconfig查看配置内容。

2、获取一个Git仓库

这有两种方法:

1、从已有的Git仓库中克隆(clone)。通过git clone URL方式clone代码。

2、新建一个仓库。通过git init在某文件夹中初始化一个空仓库,初始化完毕后,在该文件夹中会新建一个隐藏文件`.git``

3、git的基本流程

1、创建或修改文件

2、使用git add命令添加新创建或修改的文件到本地缓存区(index)

3、使用git commit命令提交本地代码库

4、使用git push命令将本地代码库同步到远端代码库

git status查看当前git仓库的状态,新建的文件的状态时:untracked

使用git add file命令将文件加入到缓存区(index)后,该文件状态会改变为:new file

使用git diff --cached查看缓存区中哪些文件被修改了,进入该界面后,需要输入q才可以退出,该命令只查看加入到缓存的文件的变化。

使用git commit提交修改,git commit可选参数:-m添加本次修改的注释,完成后就会记录一个新的项目版本。:-a将没有加到缓存区的修改也一起提交,对已提交过的文件进行修改后,文件状态变为:modified,需要注意的是-a命令不会添加新建的文件,如果一个文件不是新建的,而是被修改过,则可以通过这个命令提交,如果是新建的,则不能进行提交。

如果是删除文件,则直接使用git rm命令删除后会将已删除文件的信息添加到缓存区,git commit提交后就会将本地仓库中的对应文件删除。

如果希望将本地仓库关联到远端服务器,可以使用git remote命令,当前仓库是使用git init初始化的本地仓库,所以需要将本地仓库与远程仓库关联,使用的命令为:

git remote add origin https://github.com/user-name/project.git

git remote add命令用于添加远程主机,origin是主机名,可以自定义,https://github.com/user-name/project.git是要关联的远程仓库地址。

提交代码:

git push origin master

4、分支与合并

git分支可以让你在主线(master)之外进行代码提交,同时又不会影响代码库主线。

分支的作用:体现在多人协作开发中,比如一个团队开发软件,你负责独立的一个功能需要一个月的时间来完成,你就可以创建一个分支,只把该功能的代码提交到这个分支,而其他同事仍然可以继续使用主线开发,你每天的提交不会对他们造成任何影响。当你完成功能后,测试通过再把你的功能分支合并到主线。

1、创建分支:

git branch branch-name

git branch命令可以查看当前的分支列表,以及目前的开发环境处于哪个分支上。

2、切换分支

master分支是git系统默认创建的主分支,*号标识了你当前工作在哪个分支下。

git checkout 分支名可以切换到其他分支。

3、合并分支

通过git merge合并分支

eg:

git merge -m "注释" 需要合并的分支名

如果不同分支同时修改了同一文件,则不能直接通过git merge命令合并。此时通过git status查看状态,则被同时修改的文件的状态为:both modified

此时查看被修改的内容,可以看到不同分支对该文件的修改,也可以通过git diff查看到相同的内容。

不同分支冲突的内容都被添加到被修改的文件中,此时需要手动解决冲突,用vim打开该文件,去掉<<<<<<等符号后,根据需要保留提交的 内容,然后git addgit commit提交。

如果出现cannot do a partial commit during a merge

1、提交全部:git commit -a

2、如果不想提交全部,可以通过添加-i选项:git commit file/to/path -i -m "merge"

4、删除分支

完成合并后,不再需要某分支时,可以通过以下命令删除:

git branch -d branch-name

git branch -d只能删除那些已经被当前分支合并的分支,如果要强制删除某分支,用git branch -D

5、撤销一个分支

通过以下命令,返回合并之前的状态。

git reset --hard [merge前的版本号]

5、git日志

1、查看日志

通过git log命令显示所有提交,回车会逐步显示,输入q退出

2、日志统计

如果用--stat选项使用git log,它会显示在每个提交中哪些文件被修改了,这些文件分别添加或删除多少行内容。

git log --stat

3、格式化日志

--pretty参数可以使用若干表现格式,如oneline、short、medium、full、fuller、email、、raw

--graph用来可视化提交图

4、日志排序

日志记录可以按不同的顺序来显示,如果你要指定一个特别的顺序,可以为git log命令添加顺序参数。

指定--topo-order参数,让提交按拓扑顺序来显示(就是子提交在它们的父提交前显示)

git log --pretty=format:"%h:%s" --topo-order --graph

也可以用--reverse参数来逆向显示所有提交日志。

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

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

相关文章

小程序广告变现:探索创新路径实现盈利

随着移动互联网的不断发展&#xff0c;小程序作为一种轻量级应用形式&#xff0c;在用户中的普及程度不断提升。对于开发者而言&#xff0c;如何在小程序中实现盈利成为了一项挑战&#xff0c;而广告变现成为其中一种常见的经济模式。本文将深入探讨小程序广告变现的方式以及如…

服务器共享文件审计,内网安全管理系统-共享审计

在现代企事业单位的网络中&#xff0c;最常用的功能莫过于“共享文件”了。财务部门需要当月员工的考勤信息&#xff0c;人事部门可能不会亲自拿过去&#xff0c;而是在网络上共享&#xff1b;生产部门的生产报表也不会用书面的资料分发&#xff0c;而是放在网络的共享文件夹下…

介绍“Razor”— ASP.NET的一个新视图引擎

我的团队当前正在从事的工作之一就是为ASP.NET添加一个新的视图引擎。 一直以来&#xff0c;ASP.NET MVC都支持 “视图引擎”的概念—采用不同语法的模板的可插拔模块。当前ASP.NET MVC “默认”的视图引擎是ASP.NET Web窗体使用的.aspx/.ascx/.master文件模板。而当今其他一些…

w10系统打印服务器怎样出来,win10怎么打开关闭打印机服务教程步骤

当我们想要使用打印机服务时候&#xff0c;却不知道在哪里打开&#xff0c;对于win10系统&#xff0c;具体怎么操作呢?下面小编来告诉你开启和关闭打印机服务的方法吧&#xff0c;希望对你有帮助!Win10系统开启和关闭打印机服务的方法1、在Win10系统下&#xff0c;按住键盘的“…

获取函数的名字

c99标准中的__func__预定义标识符功能可以帮我们获取函数的名称 #include<string> #include<iostream> using namespace std;const char *hello(){return __func__; }int main(){cout<<hello()<<endl;return 0; }代码中的函数相当于&#xff1a; con…

浅谈自学方法论- 不断更新-记录思路

1. 用程序员的思想&#xff0c;去自学。 从主函数入手&#xff0c;也就是&#xff0c;了解整个框架。 2. 读书&#xff0c;带着宏观和微观的思路&#xff0c; 先不管看得懂看不懂看第一遍&#xff0c; 然后带着问题去读第二遍&#xff0c;并搜索不懂得关键词。 第三遍&#xff…

xp系统目前禁用索引服务器,WinXP系统中可以被禁用的服务对照表

application layer gateway service为internet连接共享和internet连接防火墙提供第三方协议插件的支持如果你没启用internet连接共享或windows xp内置防火墙&#xff0c;可以禁止这个服务。automatic updates自动从windows update启用windows更新的下载和安装需要时&#xff0c…

hadoop之linux常用命令

Linux的命令后面会有命令选项&#xff0c;有的选项还有选项值。选项的前面有短横线“-”&#xff0c;命令、选项、选项值之间使用空格隔开。有的命令没有选项&#xff0c;会有参数。选项是命令内置的功能&#xff0c;参数是用户提供的符合命令格式的内容。 1.1.1. 命…

c获取文件的名字和运行到程序的第几行功能

可以通过__FILE__和__LINE__两个宏获取文件的名字和代码运行的行数 #include<stdio.h> int main(){printf("file:%s line:%d\n",__FILE__,__LINE__);return 0; }__FILE__在linux中能获取到文件名称&#xff0c;但是在windows中获取的是带路径的名字。

MongoDB系列二

简介 MongoDB是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个高性能&#xff0c;开源&#xff0c;无模式的文档型数据库&#xff0c;是当前NoSql数据库中比较热门的一种。 MongoDB是一个介于关系数据库和非关…

通过查看__cplusplus的值查看编译器的C++标准

C03标准中&#xff0c;__cplusplus被定义为199711L&#xff0c;而在C11中&#xff0c;__clpusplus则被定义为201103L #include<iostream> using namespace std; int main(){cout<<__cplusplus<<endl;return 0; }

Oracle-数据实现竖排打印

--存放重证评分的数据表create table ZZPFapache2( ZZ_datetime DATE, --时间 ZZ_zongfen INTEGER, --总分 ZZ_shiwanglui INTEGER, --死亡率 ZZ_BINGRENID VARCHAR2(50), --病人ID ZZ_h1f1 INTEGER, --第1行1个分 ZZ_h1m1 VARCHAR2(40), ZZ_h1f2 INTEGER, --第1行…

C#时间格式

可以这样写: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo) 日期转化二 DateTime dt DateTime.Now; Label1.Text dt.ToString();//2005-11-5 13:21:25 Label2.Text dt.ToFileTime().ToString();//127756416859912816 Label3.Text dt.ToFileTim…

C++11的静态断言

断言就是将一个返回值总是需要为真的判别式放在语句中&#xff0c;来排除在设计的逻辑上不应该出现的情况。C11标准中引入了静态断言&#xff1a;static_assert 在C标准中&#xff0c;<cassert>或assert.h为我们提供了assert宏&#xff0c;但是这个宏只有在运行时才进行…

C++ 字符串编程训练2

今天讲的一道习题是很经典的约瑟夫环问题&#xff0c;其实lz对于链表的某些操作还不是太懂&#xff0c;所以在程序中有些地方还不太看得懂&#xff0c;这里借鉴的网上的做法&#xff0c;还请大牛能够解答我的疑惑&#xff0c;谢谢&#xff01; 标题&#xff1a;约瑟夫环 说明&a…

linux扩展lvm磁盘

env&#xff1a; centos 6.5 x64 hyper-v虚拟机 这个方法可以在当前运行的系统中扩展root磁盘 详细步骤 之前想创建的一个虚拟机的磁盘空间不够用了&#xff0c;所以想扩容一下磁盘。 正好使用的时候是lvm磁盘&#xff0c;可以支持扩容。 格式化一个新的分区或者磁盘 Command…

C/C++编译、测试须知、须会,CMake、Boost等

以下内容为本人实习期间学习笔记&#xff01;&#xff01;参考了网上的许多教程&#xff0c;共享大家&#xff0c;欢迎交流。 动态库和静态库&#xff08;共享库&#xff09; 不同点&#xff1a;代码被载入的时刻不同 静态库的代码在编译过程中已经被载入可执行程序&#xf…

C# DataTable去除重复,极其简便、简单

其中sourceDT是获取到的一个DataTable类型的集合对象 去重复使用方式&#xff1a; 实例化一个DataView对象 假设为dv&#xff0c;直接dv.ToTable()即可&#xff0c;ToTable中可为&#xff08;true,"用于判断重复的列"&#xff09;&#xff0c;比如图中所示&#xff0…

【转】C++类中对同类对象private成员访问

私有成员变量的概念&#xff0c;在脑海中的现象是&#xff0c;以private关键字声明&#xff0c;是类的实现部分&#xff0c;不对外公开&#xff0c;不能在对象外部访问对象的私有成员变量&#xff0e; 然而&#xff0c;在实现拷贝构造函数和赋值符函数时&#xff0c;在函数里利…

MySQL 导出命令

mysqldump --no-defaults -u root -p dbname > c:\www\test.sql windows 下使用。转载于:https://www.cnblogs.com/chenshuo/p/4646070.html