git笔记

本文详细介绍Git的基本使用方法,包括初始化仓库、文件管理、版本控制、分支管理、远程仓库同步及常见问题解决等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做ctf题时涉及到git源码泄漏的问题,顺便就学一下git吧
GitHack工具下载
使用:python GitHack.py http://www.target.com/.git/

git学习

这个git教程网站还是挺好的
git暂存区文件查看
阮一峰的博客
记录以一下,以后忘记时随时查看

基础

新建文件夹下初始化
git init
添加到暂存区
git add file
暂存区提交
git commit -m "destribute"
保存现场(工作进行一半还不能git add时)
git stash
恢复现场
git stash apply
删除stash
git stash drop
恢复现场并删除
git stash pop

查看比较

查看提交历史
git log
树状图查看提交历史
git log --graph --pretty=oneline --abbrev-commit
查看编辑过的命令历史
git reflog
查看暂存区的文件
git ls-files -s
查看缓存区文件的具体内容
git cat-file -p 8ef0
和e43b开头的版本比较不同(diff = difference)
git diff e43b
查看远程库信息
git remote -v

分支操作

查看分支
git branch
创建分支
git branch name
删除分支
git branch -d name
切换分支
git checkout name
git switch name
创建并切换分支
git checkout -b name (selectname)
git switch -c name (selectname)
将name分支和当前分支合并(使用fast forward模式)
(两个分支操作同一个文件,合并后会报错,需要手动修改合并文件并提交)
git merge name
保留合并前的分支(使用normal模式)
git merge --no-ff -m "description" name
丢弃一个没有被合并过的分支,强行删除
git branch -D name
把本地未push的分叉提交历史整理成直线
git rebase

操作文件

工作区回退1层版本
git reset --hard HEAD^
工作区回退100层版本
git reset --hard HEAD-100
工作区回退到e43b开头的版本
git reset --hard e43b
工作区file恢复到最近一次git add或者git commit的状态
git checkout -\- file
删除暂存区的file,并且转移到工作区
git reset HEAD file
从版本库删除文件
git rm file

提交

首次
git remote add origin https://github.com/username/test.git
git branch -M main 
git push -u origin main
以后
git push origin branchname

多人合作时同时提交一个文件,除了第一个人成功提交外,其他人会接收到一个冲突报错
git push origin branchname
有冲突
git branch --set-upstream-to=origin/name name
远程抓取分支并且在本地合并
git pull
本地解决冲突提交

设置仓库地址
git remote set-url origin https://github.com/...

下载

git clone https://github.com/username/dir  ~/Document/dir

标签

在某个分支上加标签
git tag v1.2
git tag -a tagname -m "discription"
查看所以标签
git tag
删除
git tag -d tagname
上传
git push origin tagname(一个)
git push origin --tags(所有)

其他

修改颜色
git config --global color.ui true

报错

fatal: refusing to merge unrelated histories

ctf中使用的命令

git log
git diff
在这里插入图片描述
在这里插入图片描述
git stash apply
在这里插入图片描述
多出了个文件
在这里插入图片描述

### 关于Git使用的Markdown格式笔记或模板 在创建有关Git使用的Markdown笔记时,可以遵循一定的结构来确保清晰性和易读性。下面是一个基于最佳实践构建的示例模板: #### 1. 文档标题 # Git 基础操作指南 #### 2. 版本控制简介 版本控制系统允许团队成员协作开发项目而不必担心文件冲突。Git 是最流行的分布式版本控制系统之一。 #### 3. 安装与配置 安装完成后需设置用户名和邮箱以便追踪贡献者身份。 ```bash git config --global user.name "Your Name" git config --global user.email you@example.com ``` 为了简化后续的身份验证过程,可以通过存储凭证辅助器来保存登录信息[^1]: ```bash git config --global credential.helper store ``` #### 4. 创建仓库 初始化新仓库或将现有目录转换为Git库: ```bash cd /path/to/my_project git init ``` 克隆远程仓库到本地机器上: ```bash git clone https://github.com/user/repo.git ``` #### 5. 日常工作流 添加更改至暂存区并提交更新: ```bash git add . git commit -m "描述性的消息" ``` 查看当前分支状态以及最近一次提交的信息: ```bash git status git log --oneline ``` 推送本地改动到远端服务器: ```bash git push origin main ``` 拉取最新的上游变更并与本地同步: ```bash git pull origin main ``` #### 6. 分支管理 创建新的特性分支用于隔离功能开发: ```bash git checkout -b feature_branch_name ``` 切换回主干继续其他任务: ```bash git checkout main ``` 合并已完成的功能回到主线之前先确保已经获取最新版main分支的内容: ```bash git merge feature_branch_name ``` 删除不再需要的工作副本: ```bash git branch -d feature_branch_name ``` #### 7. 解决冲突 当多人编辑同一部分代码时可能会发生冲突,在这种情况下需要手动调整直至解决所有分歧之处再完成合并流程。 #### 8. 标签打点 给特定版本打标签有助于标记重要里程碑如发布日期等特殊时刻: ```bash git tag v1.0.0 git push origin --tags ``` 此模板不仅涵盖了基本概念还包含了实际应用场景下的常用指令集,非常适合初学者作为入门参考资料使用。通过这种方式整理出来的笔记既直观又实用,能够帮助读者快速掌握Git的核心技能[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值