git入门(代码片段)

haohj haohj     2023-01-01     384

关键词:

git初始化

设置你的名字和email,这些是你再提交commit时的签名,每次提交记录中都会包含这些信息。

使用git config命令进行配置:

git config --global user.name ‘haohj‘
git config --global user.email ‘[email protected]

执行了上面的命令后,就会在C:UsersAdministrator下建立一个叫.gitconfig的文件(Administrator是我本机的用户名)。内容一般是像下面这样的

[user]
    email = [email protected]
    name = haohj

上面的配置文件就是Git全局配置文件,一般的配置方法是git config --global <配置名称> <配置的值>。

如果你想使项目里的某个值与前面的全局设置有区别(例如把私人邮箱地址改为工作邮箱),你可以在项目中使用git config命令不带 --global选项来设置。这会在你当前的项目目录下创建.git/config,从而使用针对当前项目的配置。

获得一个Git仓库

有两种方法可以得到一个Git仓库:一种是从已有的Git仓库中clone (克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。

Clone一个仓库

git clone https://github.com/haohj/gitproject

初始化一个新的仓库

对一个已存在的文件夹使用下面的命令让它置于Git的版本控制管理之下。

git init

正常的工作流程

git的基本工作流程如下:

  1. 创建或修改文件
  2. 使用git add命令添加新创建或修改的文件到本地的缓存区(Index)
  3. 使用git commit命令提交到本地代码库
  4. (可选,有的时候并没有可以同步的远端代码库)使用git push命令将本地代码库同步到远端代码库

创建或修改文件

在项目目录下创建一个文件,比如我们创建一个README.md文件。

创建完可以使用git status命令查看当前git仓库的状态,可以发现刚刚创建的文件处于untracked状态,下一步我们需要使用git add命令将这些文件加入到缓存区(Index)。

使用git add加入缓存区

使用git add命令将新建的文件添加到缓存区:

git add README.md

使用git commit提交修改

当所有新建,修改的文件都被添加到了缓存区,我们就需要使用git commit提交到本地仓库

git commit -m "add README.md"

注意

  • 新建文件,修改文件,都需要使用git add命令添加到缓存区才可以提交。
  • 删除文件,则需要直接使用git rm命令删除后会自动将已删除文件的信息添加到缓存区,git commit提交后就会将本地仓库中的对应文件删除。

如果我们还希望将本地仓库关联到远端服务器,我们可以使用git remote命令,不同于git clone命令,直接将远端的仓库克隆下来。如果我们当前的仓库是使用git init初始化的本地仓库,那么我们需要将本地仓库与远程仓库关联,使用如下命令(需要修改下面的远程仓库地址为自己的仓库地址

git remote add origin https://github.com/haohj/gitproject.git

对于上述命令而言,git remote add命令用于添加远程主机,origin是主机名,此处我们可以自定义,不一定非要使用origin。

这个时候如果本地的仓库连接到了远程Git服务器,可以使用下面的命令将本地仓库同步到远端服务器:

git push origin 

分支与合并

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

创建分支

一个Git仓库可以维护很多开发分支。现在我们来创建一个新的叫test的分支:

git branch test

运行git branch命令可以产科当前的分支列表,以及目前的开发环境处在哪个分支上。

技术分享图片

切换分支

通过刚才的查看分支命令我们可以看到,test分支是我们刚才创建的,master分支是Git系统默认创建的主分支。星号标识了你当前工作在哪个分支下。使用如下命令可以切换到其它分支:

git checkout test

切换到test分支,切换完成后,我们先编辑一下里面的一个文件,再提交(commit)改动,最后切回“master”分支

技术分享图片

这时我们会发现刚刚修改的内容看不到了。这是因为我们刚刚是在test分支下修改的,现在切换回了master分支,目录下的文件都是master分支上的文件了。

合并分支

现在我们在master分支上继续做一些不同的修改

技术分享图片

这时两个分支有了各自不同的修改,分支内容都已经不同了,需要使用git merge命令来合并test到主线分支master。

技术分享图片

-m参数仍然是需要填写合并的注释信息。

  • 如果两个分支修改的文件不同,那么就不会有冲突,执行上面的命令后合并就完成了。
  • 如果两个分支都修改了同一个文件,则合并失败。

我们刚刚的修改就是第二种情况,现在合并失败了。这时我们用git status命令查看状态会发现文件显示both modified。

技术分享图片

查看文件就会看到文件中有git自动产生的冲突<<<<<<<<<符号

技术分享图片

这时需要我们手动解决冲突然后再重新提交。

删除分支

当我们完成合并后,不再需要test时,可以使用下面的命令删除:

git branch -d test

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

撤销一个合并

如果你觉得你合并后的文件有问题,想把当前的修改都放弃,可以使用下面的命令回到合并之前的状态:

git reset --hard HEAD^

快速向前合并

还有一种需要特殊对待的情况在前面没有提到。通常,一个合并会产生一个合并提交(commit),把两个父分支的每一行内容都合并进来。

但是,如果当前的分支和另一个分支没有内容上的差异,就是说当前分支的每一个提交(commit)都已经存在另一个分支里了,git就会执行一个“快速向前”(fast forward)操作;git不创建任何新的提交(commit),只是将当前分支只想合并进来的分支。

Git日志

查看日志

git log命令可以显示所有的提交(commit):

git log

如果提交的历史记录很长,回车会逐步显示,输入q可以退出。

git log有很多选项,可以使用git help log查看。Git会根据git log命令的参数,按时间顺序显示相的提交。

日志统计

如果使用--stat选项使用git log,则会显示在每个提交中哪些文件被修改了,这些文件分别添加或删除了多少行内容,这个命令相当于打印详细的提交记录。

git log --stat

格式化日志

你可以按你的要求来格式化日志输出。--pretty参数可以使用若干表现格式,如oneline:

git log --pretty=oneline

或者你也可以使用short格式:

git log --pretty=short

你也可以用medium,full,fuller,email或raw。如果这些格式不完全符合你的需求,你也可以用--pretty=format参数定义格式。

--graph选项可以可视化你的提交图,会用ASCII字符来画出一个很漂亮的提交历史(commit history)线:

git log --graph --pretty=oneline

日志排序

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

按默认情况,提交会按照时间逆序排列显示,可以指定--topo-order参数,让提交按拓扑顺序来先(就是子提交在它们的父提交前显示)。

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

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

git入门(代码片段)

目录Github命令操作配置基本信息向仓库添加文件修改仓库文件删除文件远程管理git仓库Error错误代码:![rejected]master->master(fetchfirst)Github命令操作配置基本信息配置用户名:gitconfig--globaluser.name‘Liu0506‘配置用户邮箱信息:gitconfig--g... 查看详情

git入门(代码片段)

1.初始化git,会在home下生成.gitconfig文件。gitconfig--globaluser.namexxxgitconfig--globaluser.email[email protected]2.不使用--global参数时在某项目顶层目录下生成私有配置config,报告单独的名字和邮箱xxx项目目录/.git/config3.需要一个项目的仓... 查看详情

git入门(代码片段)

git初始化设置你的名字和email,这些是你再提交commit时的签名,每次提交记录中都会包含这些信息。使用gitconfig命令进行配置:gitconfig--globaluser.name‘haohj‘gitconfig--globaluser.email‘[email protected]‘执行了上面的命令后,就会在C:... 查看详情

git入门(win10)(代码片段)

Git入门(win10)[Git下载链接](https://git-scm.com/downloads)一、git的下载和安装点击进入下载链接可以看到以下画面:接着按如下的步骤一直Next直到install:点击install安装成功后,打开cmd输入git,效果如下图则证明安装成功:二、创建第... 查看详情

git入门教程(代码片段)

文章目录导语1.Git简介2.Git客户端下载安装3.常用命令3.1设置和配置(SetupandConfig)gitconfig3.2获取或创建项目(GettingandCreatingProjects)gitclone3.3基本快照(BasicSnapshotting)gitaddgitcommitgitstat 查看详情

git入门(代码片段)

1.$gitconfig--globaluser.name"YourName"$gitconfig--globaluser.email"email@example.com"2.pwd命令用于显示当前目录第二步,通过gitinit命令把这个目录变成Git可以管理的仓库:虽然Git告诉我们readme.txt被修改了,但 查看详情

git入门(代码片段)

git简介产生历史2005年,Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是git。git的两个特点版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。分布式:Git是分布式版本控制系统,同... 查看详情

git入门到放弃(代码片段)

git基础入门Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。git的安装下载地址注意:不要安装在中文目录... 查看详情

git-入门到熟悉_日志管理(代码片段)

文章目录Pre常用命令演示PreGit-入门到熟悉_Git基本概念与核心命令Git-入门到熟悉_分支管理Git-入门到熟悉_远程仓库管理在使用Git提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用gitlog命令查... 查看详情

git-入门到熟悉_日志管理(代码片段)

文章目录Pre常用命令演示PreGit-入门到熟悉_Git基本概念与核心命令Git-入门到熟悉_分支管理Git-入门到熟悉_远程仓库管理在使用Git提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用gitlog命令查... 查看详情

玩转git入门篇(代码片段)

最近项目使用到Git管理项目,所以就学习了一番,随然网上关于Git的文章铺天盖地,我还是整理下总结下自己学习Git相关笔记,希望也能帮助到需要他的小伙伴们,O(∩_∩)O~简介Git是分布式版本控制和源代码管理系统,重点使用... 查看详情

git和github快速入门(代码片段)

Git入门简介Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制系统。工具准备工具Git下载地址:https://git-scm.comGit配置配置的内容主要是:用户名和邮箱gitconfig--global--adduser.name<用户名>gitconfig-g... 查看详情

git入门(代码片段)

Github简介github是通过Git进行版本控制的软件源代码托管服务平台,于2008年4月10日正式上线。github除了Git代码仓库托管及基本的Web管理界面以外,它还提供了一些方便社会化共同软件开发的功能,即一般人口中的社群功能,包括... 查看详情

git入门使用(代码片段)

Git是什么? Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是LinusTorvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。关于Git的诞生,这里还有一个小故事。Linus在1991... 查看详情

git快速入门(代码片段)

Git基本操作讲师的博客:https://www.cnblogs.com/alex3714/articles/5930846.html基本操作看之前自学的时候记的笔记:http://blog.51cto.com/steed/2138687Git的官方文档(有中文):https://git-scm.com/book/zh/v2回滚到上一个版本用下面的命令,可以方便的... 查看详情

git快速入门(代码片段)

1.安装gitmacOS:Git-DownloadingPackageWindows:GitforWindowsLinux:Git2.创建新仓库创建新文件夹,打开,然后执行gitinit创建新的git仓库。3.检出仓库执行如下命令以创建一个本地仓库的克隆版本:gitclone/path/to/repository... 查看详情

git与github入门基础(代码片段)

上节回顾初始化一个Git仓库用gitinit命令。将文件添加到Git仓库中主要有两个步骤:      第一步,使用命令gitadd<file>;        注意:使用gitadd.命令可以将全部文件同时添加到Git仓库缓存区。    &... 查看详情

git入门简介(代码片段)

Git简介:    介绍Git之前,先简单介绍一下版本控制系统。版本控制系统的产生是为了方便多用户对工程及项目的编写、改动的协同系统。版本控制系统分为集中式和分布式。在Git出现之前,版本控制系统是CVS、SVN操作系统... 查看详情