1、git的基本操作
1、git init初始化仓库
2、git add filename把文件添加到仓库
3、git commit -m 'init data' 把代码添加到版本管理
2、git的结构图
2.1、git 仓库示例
git初始化仓库
2.2、.git文件图
.git
2.3、本地文件图
本地文件图
上图标记
commit、tree、23a3a9、2465都是对象文件
2.4、查看对象文件类型
.git文件类型
1、
cd到当前工作目录2、
git cat-file -t 169513(文件夹名称+对象名称前4位)
git cat-file -t 23a3a9d5
blob
git cat-file -t c35c2b
commit
git cat-file -t 169513
tree
3、查看文件内容
git cat-file -p 23a3a9 (blob)
1111
git cat-file -p c35c2b (commit)
tree 169513e58bf8d0b1ecaef72bba5001c88229a496
author shijikl <shijikl@126.com> 1659020604 +0800
committer shijikl <shijikl@126.com> 1659020604 +0800
git cat-file -p 169513 (tree)
100644 blob 23a3a9d599131d7f61b7383e5814c63e63ed186d a.txt
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 b.txt
2.5、修改a.txt
git add a.txt 命令对应的仓库变化
修改a.txt
2.6、git commit命令
1、git commit -m "update a.txt"
将加入到本地参考,并且更新index索引指向
git commit命令变化
2、查看
commit对象
git cat-file -p bb5158
tree 085c24a5d9c50a1094f3f204c39053a1fd0569a0
parent c35c2b9d3190026b1b11d80a8fb22f66146d8889(父节点为前一个节点)
author shijikl <shijikl@126.com> 1659107066 +0800
committer shijikl <shijikl@126.com> 1659107066 +0800
3、查看暂存区index的内容
git ls-files -s
100644 65309f46539a0ddbe66c14b4f45e230fda311bf7 0 a.txt
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0 b.txt
3、git的基本命令
3.1、git diff
---原始文件
+++目标文件
1、git diff 默认比较工作区和暂存区的差异,如果文件已经add,diff则无提示
例如修改a.txt文件内容:
index 6fed73e..729f227 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1 @@
-3333
\ No newline at end of file
+3333s
\ No newline at end of file
2、git diff HEAD命令 可以比较HEAD版本库和工作区的差异
3、git diff --cached,比较HEAD版本和暂存区的差异
3.2、git reset
1、git reflog 查看提交记录
77a68e7 (HEAD -> master) HEAD@{0}: commit: update2 a.txt
bb51581 HEAD@{1}: commit: update a.txt
c35c2b9 HEAD@{2}: commit (initial): a
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^
回到指定版本
git reset --hard <commit id>
--hard引用回退到指定版本,工作区和暂存区也一同回退。
--soft引用回退到指定版本,工作区和暂存区不改变。
git reset <commit id>引用回退到指定版本,暂存区回退,工作区不改变。
3.3、git checkout
git checkout -- file 可以丢弃工作区的修改:
命令git checkout -- readme.txt意思是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
1)、readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态
2)、readme.txt已经添加到暂存区后,又作了修改,现在撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态
3.4、git mv
使用mv命令来修改文件名,不要用系统自带的文件名修改
git mv student.class Student.class
修改名称不会影响原来的数据
3.5、储藏
git stash save 'some_msg' 储藏变更
git stash list 查看储藏
git stash pop 恢复储藏
stash
3.6、切换分支
3.6.1、cat .git/HEAD
// 指向master
ref: refs/heads/master
3.6.2、cat .git/refs/heads/master
// 指向commit
2ad39753e403afdc406262729f9433b0fa7d13e6
3.6.3、创建dev文件
1、手动创建
手动创建dev分支
修改
HEAD文件内容为ref: refs/heads/dev修改
dev文件内容为第一次commit内容
切换分支
2、命令创建
git branch <name>3、切换分支
git checkout <name>4、创建分支,并且切换分支
git checkout -b <name>5、删除分支
git branch -D <name>
3.6.4、合并分支
1、创建两个分支
git checkout -b dev && git commit -m "dev: add dev.txt"
git checkout -b test && git commit -m "test: add test.txt"
2、合并两个分支
git merge dev -m "merge dev branch"
3、合并冲突
合并冲突
不同的文件都统一和
BASE版本进行比较如果一个文件只有在一个分支版本有修改,直接合并即可
如果一个文件在两个分支都存在修改,那么就存在冲突,需要手动合并代码。
4、停止合并
git merge --abort
3.7、git rebase命令
git checkout dev
git rebase master
这两条命令等价于
git rebase master dev
git rebase
4、远程仓库
远程仓库
4.1远程仓库管理
1、常见的远程仓库
github、gitee、gitlab
2、常用的操作命令
git remote add origin https://gitee.com/xxxx/xxx.git
git push -u origin master












网友评论