git笔记

使用前的配置

git config --global user.name "zhangyuhang"
git config --global user.email "2673459873@qq.com"

–global use global config file --对当前用户所有仓库都有效
–system use system config file – 对系统仓库有效
–local use repository config file – 对某个仓库有效

创建仓库

项目:
1.存在:
cd 项目目录
git init
2.不存在:
git init 项目名
git init test01
工作区: 项目目录
暂存区: 临时存储文件的地方 可以进行撤回
本地仓库:版本控制
1.vim 1.log
2.git add 1.log => 添加到暂存区
3.git commit -m “Add 1.log” => 添加到 本地仓库
4.git log 查看本地仓库历史 :当前分支的 commit(版本)历史
切换版本:
git reset --hard 哈希码
git reset --hard d7db6e

编写一个小项目 ,提交到git本地仓库

– 1.初始化项目
git init music

2.-- 添加一个index.html文件
git add index.html
git commit -m “Add index.html”
git log

3.-- 编写其他文件
git status =》显示工作区和暂存区的不同(红色)、暂存区和本地仓库的不同(绿色)
git add font/ icon/ image/ music/ =》可一次添加多个
git status
git commit -m “Add other data” =》将暂存区的一次性提交到本地仓库
git status
git log

4.-- 添加页面样式

git status
git add script.js style.css
git status
git commit -m “Add css&js”
git status
git log

  1. – 修改代码文件
    git status
    修改了代码文件
    git status
    git add -u 工作区和暂存区都有时,在工作区做出多个修改,可以一次性add到暂存区
    git status
    git commit -m “Update”
    git status
    git log =》当前分支的commit历史

git log

git log =》查看当前分支的commit历史
git log 分支名 =》查看指定分支名的commit历史
git log --reflog =>查看所有分支的commit历史
git log --format=oneline =》以一行的形式显示当前分支的commit历史 长的hash值
git log --oneline =》以一行的形式显示当前分支的commit历史 短的hash值
git log --oneline 分支名 =以一行的形式显示指定分支的commit历史
git log --oneline --reflog =》以一行形式显示所有分支的commit历史
git log --oneline -n 2 =》以一行形式显示最近两条commit历史

分支

创建分支

git branch -c 分支名 =》直接复制最新分支
git branch -v =》查看分支
git checkout 分支名 =》切换分支
git log --oneline 分支名 =》查看某个指定分支的commit历史
git log --oneline --graph =》 以图形化界面展示当前分支的commit历史
git log --oneline --graph --all =》以图形化界面展示所有分支的commit历史
gitk --all 以图形化界面展示所有分支的commit历史
path =》 记录当前commit下变更文件
tree =》 记录当前commit下所有文件
创建分支并切换分支
git checkout [-b|-B] ] []
git checkout -b bigdata 61b6bb8
git commit -am “xxxx”
表示 工作区 暂存区 文件都有的前提下 ,更改工作区文件 可以直接提交到本地仓库

删除分支

git branch (-d | -D) … 可删除多个参数
-d: 删除分支之前 要求merge 到主分支 git branch -d java
-D: 强制删除分支 git branch -D java
删除分支之前需要先切到master

.git文件夹介绍

1.HEAD 文件 当前项目 正在工作的分支是谁

$ cat HEAD
ref: refs/heads/bigdata

2.config文件 :记录项目的一些参数 /一些配置信息 cat config
git config --local user.name “zihang” =》 set 设置参数
git config --local user.name =》 get操作

$ git config --global user.name
zhangyuhang

3.refs/ 文件夹

$ cd refs/
drwxr-xr-x 1 HuaWei 197121 0 Nov 10 20:29 heads/  存储的是分支的指向 哪个commit
drwxr-xr-x 1 HuaWei 197121 0 Nov  9 10:00 tags/
$ cd heads/
$ ll
total 3
-rw-r--r-- 1 HuaWei 197121 41 Nov 10 20:29 bigdata
-rw-r--r-- 1 HuaWei 197121 41 Nov 10 09:33 dev
-rw-r--r-- 1 HuaWei 197121 41 Nov  9 17:17 master
$ cat bigdata
e9c3eccb6010f9bb95b7886d5e4fb017f8c2ef80  对应存储的文件内容是什么
$ git cat-file -t e9c3eccb6010f9  =》 文件类型
commit
$ git cat-file -p e9c3eccb6010f9  => 文件内容
tree 288b63bd6d181ea1a4cb0fbcf50912f0eed42869
parent c2b6834ea3f50a96f715f1d970273ced1675703e
author zhangyuhang <2673459873@qq.com> 1668083396 +0800
committer zhangyuhang <2673459873@qq.com> 1668083396 +0800
$ git cat-file -t 288b63bd6d181ea
tree
$ git cat-file -p 288b63bd6d181ea
100644 blob 6baa949e6128913398121f9fb989b1e3f9c9e194    1.log
100644 blob c08ebe07b034e3ede83a1d41dbc0f453551f40c3    2.log
100644 blob fe439419897a3030a8b1b48e6c299191f17b180b    3.log
040000 tree e3776fa6a6e934984d3d6a970e4c506917ad4e03    font
040000 tree 60a36c8159d180109ef805080a1484f564f8ea5f    icon
040000 tree 4cd28d4ae5ed1d9bfad43897ce1511e3d5b06d12    image
100644 blob 50b7e56128fa4a8ea84eee648103c9e49d19e087    index.html
040000 tree 9655bfd2c6a773e59063e5a704c5969cc6a8b6a1    music
tree里面有blob和tree
$ git cat-file -t 6baa949e6128913398121
blob
$ git cat-file -p 6baa949e612891339
999
111

git存储文件高效的原因:不同的文件 只要文件内容有相同的部分 就是一个 blob

修改commit的msg 信息

1.修改最新的commit的msg git commit --amend
2.修改之前某一个的commit的msg
git rebase -i 哈希值 交互式
修改某一个的commit = 基于前面commit 进行修改当前的commit
$ git log --oneline
e9c3ecc (HEAD -> bigdata) update 3.log
c2b6834 updata 1.log
93b8487 …/2.log
30256c3 Add 1.log
4a03459 Add other file
2d034d7 Add html
$ git rebase -i 2d034d7
pick 4a03459 Add other file
pick 30256c3 Add 1.log
pick 93b8487 …/2.log
pick c2b6834 updata 1.log
pick e9c3ecc update 3.log
r, 重写某个commit msg
r 4a03459 Add other file
Add others file
3.合并多个commit的msg 合并成一个commit msg
s, 合并多个commit msg
git rebase -i 哈希值 =》要修改的message的前面的哈希值
pick 8250895 Add others file
s dd3c82c Add 1.log
s 11c3f4f …/2.log
#This is a combination of 3 commits.
sum message
#This is the 1st commit message:
Add others file
#This is the commit message #2:
Add 1.log
#This is the commit message #3:
…/2.log

查看文件差异

  1. 查看差异文件的个数、名字 git status
  2. 查看文件内容差异
    工作区和暂存区 文件内容差异 git diff
    $ git diff
    diff --git a/1.log b/1.log
    index 6baa949…58c9bdf 100644
    — a/1.log
    +++ b/1.log
    @@ -1,2 +1 @@
    -999
    111
    暂存区和本地仓库 文件内容差异
    git diff --cached
    $ git diff --cached
    diff --git a/1.log b/1.log
    index 58c9bdf…a30a52a 100644
    — a/1.log
    +++ b/1.log
    @@ -1 +1,2 @@
    111
    +222
    比较不同的commit 之间差异
    git diff 9cbef63 0aece3e
    git diff HEAD 0aece3e
    git diff HEAD HEAD~1 比较HEAD和HEAD的上一个版本
    git diff HEAD HEAD~2 比较HEAD和HEAD的上一个版本的上一个
    git diff HEAD HEAD~2 – 2.log 1.log 可以指定比较版本里具体的文件
    git diff a分支 b分支

恢复操作

1.工作区 =》 暂存区
1.git add后 可以进行撤回
git restore --staged …
git restore --staged 1.log 2.log 3.log
2.工作区:git add 之前 也可以撤回
git restore …
git restore 3.log
git commit 之前:
git reset --hard HEAD =>回退版本

删除文件和文件重命名

git mv 1.log 11.log
git rm 3.log

仓库备份:克隆

git clone []
repository: 仓库 本地仓库: path
远程仓库:url
1.本地仓库 备份到 本地
git clone /f/大数据/gitProject/music/.git music01
2.远程仓库 备份到 本地
git clone http://192.168.41.110/dl2262/dl2262.git

.gitignore

通过这个文件 可以指定 哪些文件 不需要被git管控
可以vim .gitignore进入文件里写上哪个文件或哪种类型的文件或者文件夹下的文件不被git管控

本地仓库与远程仓库交互

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值