创建仓库
法一:本地直接创建仓库
git init 在当前路径初始化仓库(创建仓库)
法二:从远程仓库clone一个到本地
git clone https://gitee.com/xxxx/leet-code.git(仓库地址)
仓库配置
git config user.name xxx(对单个文件)
git config --global user.name xxx (全局操作,对所有git文件)
git config --global user.email xxx@xxx.com(对单个文件)
git config --global user.email xxx (全局操作,对所有git文件)
文件操作
文件操作一共有三个区:
工作区:
所有 新建的 文件都在工作区
利用 git add test.txt (加文件名,可以把文件从工作区提到暂存区进行比对)
git add *.txt 批量操作
暂存区:
git status 查看暂存区状态
git rm --cached test.txt 清除暂存区的文件(缓存) -> 文件移动到工作区
git commit -m 新增文件(提示词) -> 提交到存储区
git ls-files 查看仓库文件
git log --oneline 查看提交记录
存储区:
添加文件b.txt:
git add b.txt
git commit -m 添加文件
修改文件b.txt:
git add b.txt
git commit -m 修改文件
删除文件b.txt:
git add b.txt
git commit -m 删除文件
误删除文件b.txt:
git restore b.txt 从仓库提到工作区,前提是仓库中的还没删除
还有一种办法:
git log --oneline 查看记录
git reset --hard 078f1a7 重置到开始的提交(会删除提交记录)
还有一种方法:
git revert 20eb1ef 回到这个操作之前的状态(不会删除提交记录)
分支操作/标签
分支操作:
有提交操作才能创建分支
git branch user(分支名)
git branch -v 查看分支
git checkout user 切换分支
git checkout -b order 创建分支并切换过去
git branch -d user 删除分支
分支的合并处理:
把order合并到master
先切换到master
git merge order
如果有冲突(两个要合并的分支有相同的文件),要手动处理
然后 git add x.txt
git commit -m 提示词
标签指令:
git tag 标签
git tag 修改名称(tag) 2549e412806f70a3b04400386fee124e61be4820 提交版本
git tag -d 标签名(删除标签)
远程仓库
远程仓库:
git remote add origin gituser@git.server.com:project.git
推送
git push origin master
拉取
git pull origin main
git cherry-pick xxx xxx xxx 将 某一/某某 提交记录移到当前分支下
要删除Git中HEAD所指向的节点(commit),
可以使用git reset --hard HEAD^1命令
如果在 Git 仓库中工作区删除了文件,但存储区的文件还存在,你可以使用以下步骤将删除的文件还原:
查看 Git 状态:
在终端或命令提示符中,进入你的仓库目录,运行以下命令,查看 Git 仓库的当前状态:
bash
Copy code
git status
你将看到已删除的文件在 “Changes not staged for commit” 部分。
恢复文件:
使用 git checkout 命令来从存储区还原已删除的文件。假设你删除的文件名为 deleted_file.txt,运行以下命令:
bash
Copy code
git checkout – deleted_file.txt
或者,如果有多个已删除的文件,可以使用以下命令来还原所有已删除的文件:
bash
Copy code
git checkout – .
这会将所有文件还原到上一次提交的状态。
再次查看状态:
运行 git status 命令,确认删除的文件是否已经被还原到工作区。
提交更改:
如果确认文件已经恢复,运行以下命令将更改提交到存储区:
bash
Copy code
git add .
git commit -m “恢复删除的文件”
这样就完成了文件的恢复和提交。
Git 仓库的所有数据都存储在.git目录下。这个目录包含了 Git 仓库的元数据和对象数据库,其中包括:
1.objects目录: 存储所有的 Git 对象,如提交(commits)、树(trees)、标签(tags)等。这些对象都以哈希值命名,并使用 zlib 进行压缩。
2.refs目录: 存储引用(references),包括分支(branches)、标签(tags)等。分支信息存储在refs/heads目录下,标签信息存储在refs/tags目录下。
3.HEAD文件: 指向当前所在的分支的引用。
4.config文件: 存储仓库的配置信息。
5.hooks目录: 包含客户端和服务器端的钩子脚本,这些脚本在特定的 Git 事件触发时运行。
6.index文件: 存储暂存区的内容。
7.logs目录: 包含引用的更新历史。
8.info目录: 包含仓库的全局配置信息。
.git目录是 Git 仓库的核心,它包含了 Git 跟踪版本历史和进行版本控制所需的所有信息。在正常使用 Git 的过程中,大多数用户都不需要直接操作.git目录下的文件和内容。 Git 提供了命令和接口来进行版本控制的各种操作,使得用户能够更方便地使用版本控制系统。