快速入门Git,通俗详细,一次就会,最新更新

本文详细介绍了Git的基本配置,包括设置全局变量、SSHKey,以及创建仓库、使用仓库的实际操作。讲解了如何将代码提交至仓库,使用gitadd、gitcommit、gitpush等命令,并展示了如何查看仓库状态、提交日志以及文件改动。此外,还阐述了gitdiff的用法,帮助理解工作树、暂存区和最新提交之间的差别。
摘要由CSDN通过智能技术生成

Git

配置

配置全局变量参数

git config --global user.name "xxxx"
git config --global user.email "xxx@163.com"
git config --global color.ui auto  # 让命令输出更可读

设置SSH Key

ssh-keygen -t rsa -C "xxx@163.com"
=>三次回车

将私钥加到本机

cd ~/.ssh
ssh-add id_rsa  

添加公钥

cat ~/.ssh/id_rsa.pub
添加到github的settings中去

检测认证和通信

ssh -T git@github.com

实战

创建仓库

全部通过点击实现,无需多言

使用仓库

国内镜像:加快下载速度

git clone git@github.com.cnpmjs.org/helloworld.git:

将代码提交至仓库

将文件存入暂存区

git add .

查看仓库状况

git status

提交到本地仓库

git commit -m "提交备注信息"

查看日志

git log

更新远程仓库

git push

实际操作学习git

git init --初始化仓库

要使用Git进行版本管理,就必须要初始化仓库

mkdir git-respository
cd git-respository
git init

目录下会生成**.git目录,.git目录存储着管理当前目录内容所需的仓库数据(附属于该仓库的工作树**)。

git status --查看仓库状态

工作树和仓库在被操作过程中,状态会不断发生变化

git status

只要对Git工作树或仓库进行操作,git status命令显示的结果就会发生变化。

git add --向暂存区添加文件

如果只是用Git仓库的工作树创建了文件,那么该文件不会被记入Git仓库的版本管理对象中。

=>git status ->查看REDME.md的时候,他会显示在***Untracked files***(无路径的文件)里。

所以,想让文件成为Git仓库的管理对象,就需要使用git add命令将其加入暂存区(Stage)

什么是暂存区?

暂存区是提交前的一个临时区域。

git add REDME.md                    # 添加仓库下所有文件到暂存区使用git add .

git status

On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:  # 被提交到暂存区的文件会出现在这里
  (use "git restore --staged <file>..." to unstage)
	new file:   "git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"

=>README.md会显示在***Changes to be commited***中

git commit --保存仓库历史记录

可以将暂存区的文件实际保存到仓库的历史记录中。通过这些记录,我们就可以在工作树中复原文件。

记述一行提交信息
git commit -m "first commit" # 格式:git commit -m "提交备注信息"

[master 479dd41] first commit
 1 file changed, 179 insertions(+)
 create mode 100644 "git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
查看提交后的仓库状态
git status

On branch master
Your branch is ahead of 'origin/master' by 2 commits.
  (use "git push" to publish your local commits)
# 工作目录很干净,提交到本地仓库完成
nothing to commit, working tree clean

显示:nothing to commit, working directory clean(工作目录很干净)

git log --查看提交日志

可以查看什么人在什么时候进行提交或者合并,以及前后操作有什么差别。

git log

# 查看三次提交的人和时间
commit 96cfa45643c36ac76fbbd8bfd3t786906971f701 (HEAD -> master)
Author: xxx <xxx@163.cn>
Date:   Wed May 26 01:33:30 2021 +0800

    third commit

commit 47345476888d9508b768911a3487712c8ae8506d
Author: xxx <xxx@sina.cn>
Date:   Wed May 26 01:32:25 2021 +0800

    second commit

commit 8a379d83a54564421d5f47821234945172044ea2 (origin/master)
Author: xxx <xxx@sina.cn>
Date:   Tue May 25 23:56:31 2021 +0800

    first commit

commit旁边一串"96cfa45643c…"这样的是指向提交的Hash(哈希)值,其他命令会用到这个Hash值

只显示信息的第一行

git log命令后加上-- pretty=short

只显示指定目录、文件的日志

git log命令后加上目录名,便会只显示该目录下的日志;如果加文件名,只会显示与该文件相关的日志。

git log git

# 第一次没创git目录也没有放文件
commit 96cfa45643c36ac76fbbd8bfd3t786906971f701 (HEAD -> master)
Author: xxx <xxx@163.cn>
Date:   Wed May 26 01:33:30 2021 +0800

    third commit

commit 47345476888d9508b768911a3487712c8ae8506d
Author: xxx <xxx@sina.cn>
Date:   Wed May 26 01:32:25 2021 +0800

    second commit
显示文件的改动

git log命令后加上-p,文件的前后差别就会显示在提交信息之后

git log -p

commit  96cfa45643c36ac76fbbd8bfd3t786906971f701(HEAD -> master)
Author: xxx <xxx@sina.cn>
Date:   Wed May 26 01:33:30 2021 +0800

    third commit

diff --git "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md" "b/git
/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
index 1230655..98135b8 100644
--- "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+++ "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
@@ -151,7 +151,15 @@ git status
 
 ```bash
 git add REDME.md                    # 添加仓库下所有文件到暂存区使用git add .
+
 git status
+
+On branch master
+Your branch is up to date with 'origin/master'.
+
+Changes to be committed:  #被提交到暂存区的文件会出现在这里
+  (use "git restore --staged <file>..." to unstage)
.....
结合指定目录、文件显示改动

git log 命令后加-p 文件名/文件夹,组合使用的到具体的修改

git log -p git

# 主要第三次只修改了git文件夹中的git简单使用.md
commit  96cfa45643c36ac76fbbd8bfd3t786906971f701(HEAD -> master)
Author: xxx <xxx@sina.cn>
Date:   Wed May 26 01:33:30 2021 +0800

    third commit

diff --git "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md" "b/git
/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
index 1230655..98135b8 100644
--- "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+++ "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
@@ -151,7 +151,15 @@ git status
 
 ```bash
 git add REDME.md                    # 添加仓库下所有文件到暂存区使用git add .
+
 git status
+
+On branch master
+Your branch is up to date with 'origin/master'.
+
+Changes to be committed:  #被提交到暂存区的文件会出现在这里
+  (use "git restore --staged <file>..." to unstage)
.....

git diff --查看更改前后的差别

可以查看工作树、暂存区、最新提交之间的差别

查看工作树和暂存区的差别

git diff

diff --git "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md" "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
index fba6c7c..6c9083a 100644
--- "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+++ "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
@@ -337,3 +337,4 @@ index 1230655..98135b8 100644
 
 *查看工作树和暂存区的差别*
 
+.sad
\ No newline at end of file
(END)

查看工作树和最新提交的差别

git diff

# 什么都不会显示,因为工作树和暂存区状态并无差别,要查看与最新提交的差别请输入:git diff HEAD
git diff HEAD

# 显示出来了
diff --git "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md" "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
index fba6c7c..baa51bc 100644
--- "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+++ "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
@@ -337,3 +337,32 @@ index 1230655..98135b8 100644
 
 *查看工作树和暂存区的差别*
 
+```bash
+git diff
+
+diff --git "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md" "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+index fba6c7c..6c9083a 100644
+--- "a/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
++++ "b/git/git\347\256\200\345\215\225\345\256\236\347\224\250.md"
+@@ -337,3 +337,4 @@ index 1230655..98135b8 100644
+ 
+ *查看工作树和暂存区的差别*
+ 
++.sad
+\ No newline at end of file
...

提示:+是新加行,被删除的用-。

好习惯建议

在执行git commit命令前先执行git diff HEAD命令,查看本次与上次提交之间的差别,确认完毕之后再进行提交。

# 提交
git commit -m "five commit"

[master f9e0257] five commit
 1 file changed, 26 insertions(+)
 
# 查看日志
git log
commit f9e0shjkfe49fa39dfcc3bb947sd565d64fbf7d3 (HEAD -> master)
Author: xxx <xxx@163.com>
Date:   Wed May 26 01:58:54 2021 +0800

    five commit

commit 2d412fasda11f789f12sad5a0f9207e62dc4fa196
Author: xxx <xxx@163.con>
Date:   Wed May 26 01:50:53 2021 +0800

    fourth commit

commit 96cfa7gfdgfdggdfacf4fbbd8bdfb521606971f701
Author: xxx <xxx@163.con>
Date:   Wed May 26 01:33:30 2021 +0800

    third commit

commit 479dd418888d9508bf86511adgdfhfgd678458506d
Author: xxx <xxx@163.con>
Date:   Wed May 26 01:32:25 2021 +0800

    second commit

成功查到第五个提交。

关于分支会出现在下一篇中,敬请期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿呆攻防

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

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

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

打赏作者

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

抵扣说明:

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

余额充值