Git教程---Windows安装及命令使用(详细例子)

目录

一 Git的工作原理

二 Git下载及安装

三 Git配置

四 Git命令(示例)

参考链接:


一 Git的工作原理

Git有四个工作区域,其中三个工作区域工作在本地,一个工作区域工作在远程仓库;

本地目录(工作区):平时存放项目代码的位置;

暂存区(stage):用于临时存放代码的改动,事实上它只是一个文件,保存即将提交到文件的列表信息;

资源区(仓库区、本地仓库):即安全存放数据的位置,这里有提交到所有版本的数据。其中HEAD指向最新放入仓库的版本;

远程Git仓库:托管代码的服务器,如github、gitlab、码云等

git的工作流程如下:

1、在工作目录下添加或修改文件;

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库;

git管理下的文件有四种状态:未跟踪(没被添加到项目中untracked);已修改(modified);已暂存(staged);已提交(committed)

二 Git下载及安装

打开网页https://git-scm.com/download/win 

选择对应版本下载即可,下载后显示安装exe文件如下,点击安装即可(一路next的那种);

安装完之后,按win键可以看到最近添加程序上三个图标,其中:

Git Gui 是git的图形化界面;Git bash是类似于Linux系统命令行操作界面;Git CMD则类似于window系统命令行操作界面;

三 Git配置

git config --global 对全局进行配置,主要是配置用户名和邮箱,以便日后将项目推到远程仓库

git config --global user.name  "用户名"  //设置git的用户名
git config --global user.email  "用户邮箱"  // 配置git的邮箱

 配置好之后可以在电脑C:\Users\自己电脑用户名路径下找到.gitconfig文件,打开可以看到刚刚我们写进去的内容,说明配置成功!

四 Git命令(示例)

git status // 项目文件的状态:待提交、文件已入库 文件已修改 暂存状态
git commit -m "消息内容"  //提交到本地仓库  -m是提交的备注信息
git branch [新的分支名] //新建一个分支,但不会立马切换到新建分支
git checkout -b [分支名] // 新建一个分支,并切换到该新建分支
git merge [分支名] // 合并该指定分支名到当前分支
git branch -d [要删除的分支名] // 删除分支
git push origin --delete [branch-name] // 删除远端分支
git branch -dr [remote/branch] // 删除远端分支

五 Git使用示例(以码云为例,gitlab,github同理)

1、准备工作:注册号码云账号

  •  注册好账号后为防止使用ssh方式下载上传代码时老是输入密码,可以给账号设置密钥

        密钥生成方式:

ssh-keygen // 在任意路径下执行即可

执行后就会在电脑C:\Users\自己电脑用户名路径下找到.ssh文件,打开其中的id_rsa_pub文件,将其粘贴到码云页面的设置-安全设置-SSH公钥对应位置即可。

2、初始化git仓库

  在任意一个空文件下,执行git init命令就可以将这个目录变成git管理的仓库:

执行完命令后可以发现刚才的空文件夹gitLearning下面生成了一个隐藏文件夹.git,这个就是版本库。打开可以看到里面还有好多文件,其中最重要的是暂存区,并且git会为我们自动创建第一个主分支master,以及指向主分支的指针HEAD。一定不要轻易删里面的内容哦~会把刚刚建好的git仓库给破坏掉~

3、在新建的仓库中添加文本文件与查看内容修改、对比文件不同、撤销修改、删除文件

在gitLearning文件夹下新建一个htmlLearning.html文件,内容如下:

<!DOCTYPE html>
<html>
<body>

<h1 id="id1">我的标题1</h1>
</body>
</html>

将其添加(git add 文件名)到git仓库中的暂存区去:

终端没报错则说明添加成功(此时gitLearning仓库中并没有htmlLearning文件);再利用git commit将刚添加的文件提交到仓库中;

此时我们再修改一下我们的htmlLearning.html文件,

添加内容如下:

<!DOCTYPE html>
<html>
<body>

<h1 id="id1">我的标题1</h1>
<p1>这是第一段</p1>     // 添加的内容
</body>
</html>

此时可以通过git diff htmlLearning.html命令查看修改了哪些内容:

  • 对比工作区和版本库某个文件的区别----git diff HEAD 文件名
  • 对比两个版本中某个文件的区别----如 git diff HEAD HEAD^  --文件名

内容表示:  减号--- 表示第一个参数的不同;加号表示第二个参数的不同, 如下面表示当前文件比版本库中多了一行内容

 终端显示前面带绿色加号的则正是我们刚刚添加的内容,这样我们就可以放心提交了(记住也是要先git add,然后才能git commit,否则会提示暂存区里没有文件需要提交Changes not staged for commit)。

可随时使用git status 命令查看git仓库中文本状态;

可随时使用git log命令查看git仓库中提交的文本记录

可随时使用git reset --hard HEAD^将版本回退到上个版本,回退多个版本时用git reset --hard HEAD~版本数(如 git reset --hard HEAD~20将会回退到前20个版本)

可以看到回到了我们提交的第一个版本(还能够看到版本号4cfdc30);

但是,我如果又想恢复到刚刚我提交的最新版本可咋办嘞:

  • 通过最新的版本号 执行命令 git reset --hard 最新版本号
  • 如何知道我的最新的版本好呢? 通过执行命令 git reflog

可以看到第二条对应的就是我刚刚最新提交的被删除的记录,版本号是26f4d41,

可以看到通过reset命令,HEAD又回到了最新的版本。

删除仓库中的文件一般是两种方法:

  • 在仓库目录中直接删掉即可,并git commit -a一下;
  • 使用命令rm -文件名,并git commit -a一下;

 

撤销修改分为三种情况:

  • 撤销工作区的修改-----使用git checkout --文件名
  • 撤销暂存区的修改(并没有commit)-----第一步git reset HEAD 文件名,第二部git checkout --文件名
  • 撤销已经commit的修改-----执行版本回退操作(git reset --hard 版本号)

 4、远程仓库

  • 创建远程仓库

登录事先注册好的码云账号,点击右上角+,可以看到新建仓库, 

根据需要创建自己的代码仓库即可;

创建后远程仓库之后,会跳转一些命令提示,

  •  我们可以将本地的项目与远程仓库进行关联,通过在本地仓库htmlLearning路径下执行标橘色的代码(-u在第一次建立远程分支与本地分支时要加上):

这样就实现了本地仓库与远程仓库关联,可以看到我们的远程仓库iotLearning和本地仓库htmlLearning内容是一样的了:

如果本地再添加或修改文件之后,在本地进行提交(add+commit)之后,一定要执行git push origin master命令哦,这样二者才能保持同步~

  • 从远程仓库克隆

我们可以随便找一个代码库,去克隆开源代码:

git clone https://gitee.com/wuhou123/mui-vue2.git
  • 创建、切换、合并分支
git checkout -b dev // 创建分支dev,并将当前分支转为dev

 上面命令等于如下两条命令:

git branch dev  // 创建分支dev
git checkout dev  //将当前分支转为dev

查看所有分支:

git branch // 查看所有分支

在分支dev上添加文件htmlLearning1.html,并在本地提交,可以看到dev分支上是有刚刚新添加的htmlLearniing1.html文件的,但master分支上是没有的哦!

将dev分支的内容合并到主分支master(要切换到合并到的那个分支上,如主分支上)

git merge dev  // 合并dev分支到当前分支master

合并分支时,一般采用的是Fast forward模式(这样有可能会导致在删除分支后,丢掉分支信息),可以通过-no-ff选项禁用该模式;

git merge -no-ff 要合并的分支名

这样在git.log下还是能看到被删除的git分支信息;

删除分支

git branch -d 要删除的分支

如果你提交的代码和别人提交的代码出现冲突,要根据冲突提示,在本地修改完冲突(保留还是删除),重新提交代码即可;

  • 暂时存储代码

工作中经常会遇到很多bug,通常在改存在两个bug的同一个文件,有一个bug着急提交,但是令一个bug还未完全修复,这时候我们只改着急提交的代码,又不想删掉已经改过的代码,这个时候应该怎么做呢?答案是可以将它们放到暂存区:

git stash // 将当前代码暂存

如,我改动了text.txt:

 可以看到text已被改动,执行完git stash之后代码便被存在了工作文件夹下,此时查看文件状态:

已经不显示我们改动的text文件了;

此时我们在master分支下新建一个bug分支,在这个分支上修改我们的text文件,并推送到远程。

合并到master分支下

最后切换回dev分支下,在该分支下,我们释放被存起来的文件,

git stash list // 查看被存起来的文件
git stash pop // 恢复被存起来的文件,并将工作区的缓存文件删掉
或
git stash apply // 仅恢复被存起来的文件,工作区中还有缓存文件

发现有冲突,打开文件,显示:

将冲突解决掉,继续修改文件bug,修改后提交即可!

  • 多人协作

在公司,基本上有多个人做同一个项目,每个人基本上都会有属于自己的分支,这样工作起来效率更高;

git remote // 查看远程库信息
git remote -v // 查看远程库的详细信息

推送本地代码到远程仓库:

git push 远程库 远程分支 // 远程库一般是origin 通过git remote查看

 抓取分支(解决冲突):

git pull  远程库 要拉取的远程分支

解决完冲突之后重新提交、推送即可。

思维导图总结:

参考链接:

Git 大全 - Gitee.com

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Git --- The stupid content tracker, 傻瓜内容跟踪器。Linus 是这样给我们介绍 Git 的。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它 采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的 速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并 跟踪(merge tracing)能力。 实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源 社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这 样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好 用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著 名项目采用 Git 来管理项目开发,例如:wine, U-boot 等,详情看 http://www.kernel.org/git 作为开源自由原教旨主义项目,Git 没有对版本库的浏览和修改做任何的权限限制。它只适用于 Linux / Unix 平台,没有 Windows 版本,目前也没有这样的开发计划。 本文将以 Git 官方文档 Tutorial, core-tutorial 和 Everyday GIT 作为蓝本翻译整理,但是暂时去 掉了对 Git 内部工作机制的阐述,力求简明扼要,并加入了作者使用 Git 的过程中的一些心得体 会,注意事项,以及更多的例子。建议你最好通过你所使用的 Unix / Linux 发行版的安装包来安 装 Git, 你可以在线浏览本文 ,也可以通过下面的命令来得到本文最新的版本库,并且通过后面的 学习用 Git 作为工具参加到本文的创作中来

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷糊的小小淘

整理不易,赏点动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值