初学者如何从0基础使用git——Windows系统

什么是git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

如何安装git

Git 各平台安装包下载地址为:https://gitforwindows.org

  1. 第一步先去官网下载exe文件 在这里插入图带年纪片描述
  2. 无脑式安装
    全部都是下一步即可。
  3. 用户信息
    配置个人的用户名称和电子邮件地址:
    $ git config --global user.name "你的用户名"
    $ git config --global user.email 你的邮箱
  4. 文本编辑器
    Git默认使用的文本编辑器, 一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 喜欢使用Emacs 的话,可以重新设置:
    $ git config --global core.editor emacs
  5. 如何使用调用git控制台
    新建一个文件夹,在文件夹内点击鼠标右键出现以下弹窗后选择Git Bash Here在这里插入图片描述 6. 查看配置信息 要检查已有的配置信息,可以使用 git config --list 命令:控制台输出内容如下
$ git config --list
http.postbuffer=2M
user.name=你的用户名
user.email=你的邮箱
  1. Git 工作流程

一般工作流程如下:
1.克隆 Git 资源作为工作目录。
2.在克隆的资源上添加或修改文件。
3.如果其他人修改了,你可以更新资源。
4.在提交前查看修改。
5.提交修改。
6.在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

  1. Git 工作区、暂存区和版本库
    工作区:就是你在电脑里能看到的目录。
    暂存区:一般存放在 .git 目录下的 index 文件(.git/index)中。
    版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
  2. Git 创建仓库
    Git init
    Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以git init是使用 Git 的第一个命令。
    在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。
    git clone

repo:Git 仓库
directory:本地目录。

我们使用 git clone 从现有 Git 仓库中拷贝项目
克隆仓库的命令格式为:
git clone <repo>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>

Git 基本操作

Git 常用的是以下 6 个命令:
git clonegit pushgit addgit commitgit checkoutgit pull
克隆(从现有 Git 仓库中拷贝项目):git clone
推送(把暂存区的文件推送到版本库,也就是远程仓库):git push
提交(把本地的文件推送到暂存区):git commit
添加(把一些新文件进行更替):git add
切换分支:git checkout
拉取(拉去远程库的文件到本地库):git pull

一个简单的操作步骤:

$ git init 初始化仓库。
$ git add . 添加文件到暂存区。
$ git commit 将暂存区内容添加到仓库中。

Git 分支管理

创建分支命令:git branch 分支的名字
切换分支命令:git checkout 分支的名字

当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

合并分支命令:git merge

你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。

代码运行案例

$ mkdir gitdemo
$ cd gitdemo/
$ git init
Initialized empty Git repository...
$ touch README
$ git add README
$ git commit -m '第一次版本提交'
[master (root-commit) 3b58100] 第一次版本提交
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README

在控制台里面使用命令创建文件
touch 文件名

Git合并冲突
什么是合并,合并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。
什么是冲突,冲突是指两个人的提交同一个文件时的不同内容
如何解决Git合并冲突
1.先拉取所需要上传的文件
2.修改或者删除不需要的文件内容
3.再重新上传
代码演示
在这里插入图片描述

Git 查看提交历史

Git 提交历史一般常用两个命令:
git log - 查看历史提交记录。
git blame <file> - 以列表形式查看指定文件的历史修改记录。
git log
在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看。

针对我们前一章节的操作,使用git log命令列出历史提交记录如下:

$ git log
commit d5e9fc2c811e0ca2b2d28506ef7dc14171a207d9 (HEAD -> master)
Merge: c68142b 7774248
Author: runoob <test@runoob.com>
Date:   Fri May 3 15:55:58 2019 +0800

    Merge branch 'change_site'

commit c68142b562c260c3071754623b08e2657b4c6d5b
Author: runoob <test@runoob.com>
Date:   Fri May 3 15:52:12 2019 +0800

    修改代码

commit 777424832e714cf65d3be79b50a4717aea51ab69 (change_site)
Author: runoob <test@runoob.com>
Date:   Fri May 3 15:49:26 2019 +0800

    changed the runoob.php

commit c1501a244676ff55e7cccac1ecac0e18cbf6cb00
Author: runoob <test@runoob.com>
Date:   Fri May 3 15:35:32 2019 +0800

我们可以用 --oneline 选项来查看历史记录的简洁的版本。

$ git log --oneline
$ git log --oneline
d5e9fc2 (HEAD -> master) Merge branch 'change_site'
c68142b 修改代码
7774248 (change_site) changed the runoob.php
c1501a2 removed test.txtadd runoob.php
3e92c19 add test.txt
3b58100 第一次版本提交

这告诉我们的是,此项目的开发历史。
我们还可以用 --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令,开启了拓扑图选项:

*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the runoob.php
* | c68142b 修改代码
|/  
* c1501a2 removed test.txtadd runoob.php
* 3e92c19 add test.txt
* 3b58100 第一次版本提交

现在我们可以更清楚明了地看到何时工作分叉、又何时归并。
你也可以用 --reverse 参数来逆向显示所有日志。

$ git log --reverse --oneline
3b58100 第一次版本提交
3e92c19 add test.txt
c1501a2 removed test.txtadd runoob.php
7774248 (change_site) changed the runoob.php
c68142b 修改代码
d5e9fc2 (HEAD -> master) Merge branch 'change_site'

如果只想查找指定用户的提交日志可以使用命令:git log --author , 例如,比方说我们要找 Git 源码中 Linus 提交的部分:

$ git log --author=Linus --oneline -5
81b50f3 Move 'builtin-*' into a 'builtin/' subdirectory
3bb7256 make "index-pack" a built-in
377d027 make "git pack-redundant" a built-in
b532581 make "git unpack-file" a built-in
112dd51 make "mktag" a built-in

如果你要指定日期,可以执行几个选项:–since 和 --before,但是你也可以用 --until 和 --after。

例如,如果我要看 Git 项目中三周前且在四月十八日之后的所有提交,我可以执行这个(我还用了 --no-merges 选项以隐藏合并提交):

$ git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges
5469e2d Git 1.7.1-rc2
d43427d Documentation/remote-helpers: Fix typos and improve language
272a36b Fixup: Second argument may be any arbitrary string
b6c8d2d Documentation/remote-helpers: Add invocation section
5ce4f4e Documentation/urls: Rewrite to accomodate transport::address
00b84e9 Documentation/remote-helpers: Rewrite description
03aa87e Documentation: Describe other situations where -z affects git diff
77bc694 rebase-interactive: silence warning when no commits rewritten
636db2c t3301: add tests to use --format="%N"

更多 git log 命令可查看:http://git-scm.com/docs/git-log

如果要查看指定文件的修改记录可以使用git blame命令,格式如下:
git blame <file>
git blame 命令是以列表形式显示修改记录,如下实例:

$ git blame README 
^d2097aa (tianqixin 2020-08-25 14:59:25 +0800 1) # Runoob Git 测试
db9315b0 (runoob    2020-08-25 16:00:23 +0800 2) # 阿天 

剩余部分有待补充

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

是天呀

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值