git提交,删除,

1、拉取代码
在这里插入图片描述
用小乌龟拉取就是上图先建一个空文件夹 然后在文件夹里右键
在这里插入图片描述

2、删除文件的时候注意:不删除gitignore,这个文件是告诉你本地哪些文件不需要提交 在提交的时候会自动 帮你过滤,然后你再拉取下 本地的gitignore应该就有了。

3、git 管理工具只要你不搞合并 基本上就没什么复杂的 合并主要是涉及到冲突 需要慢慢把冲突的地方根据情况解决掉而已 也很简单。

4、fetch(同步差异) pull(拉取代码)更新 fetch(同步差异) commit and push(提交推送)

### 如何从Git仓库中删除提交记录 #### 方法一:重置整个仓库的历史记录并保留当前代码状态 如果需要完全清除所有的历史记录并将代码保持在当前状态,可以通过以下方法实现: 1. 创建一个新的分支或者直接操作现有分支。 2. 使用 `git reset` 将 HEAD 移动到初始提交之前的状态,但保留工作目录的内容: ```bash git checkout --orphan latest_branch ``` 3. 添加所有文件并创建新的初始提交: ```bash git add -A git commit -m "Initial Commit" ``` 4. 删除旧的主分支(如 master 或 main),并将新分支推送到远程仓库: ```bash git branch -D main git branch -m main git push -f origin main ``` 这种方法适用于场景一时的情况[^1]。 --- #### 方法二:使用 BFG Repo-Cleaner 工具清理特定提交记录 对于更复杂的场景,比如仅需移除包含敏感数据的特定提交记录而不影响其他部分,可以借助 **BFG Repo-Cleaner** 这款工具。以下是具体步骤: 1. 下载并安装 BFG Repo-Cleaner。 2. 执行命令以删除匹配模式的提交记录: ```bash java -jar bfg.jar --delete-commits <pattern> <repository> ``` 其中 `<pattern>` 可以为正则表达式或关键字,用于定位目标提交;`<repository>` 表示本地 Git 仓库路径[^2]。 3. 清理完成后强制推送更改至远程仓库: ```bash git reflog expire --expire=now --all && git gc --prune=now --aggressive git push --force --all ``` 该方案适合于场景二的需求。 --- #### 方法三:通过交互式变基 (Interactive Rebase) 删除单个提交 当只需移除某几个具体的提交时,可采用交互式变基的方式完成任务: 1. 查找待删除提交之前的最近一次提交的哈希值(假设为 `abc123`)。 2. 启动交互式变基过程: ```bash git rebase -i abc123 ``` 3. 在打开的编辑器窗口中找到对应行,并将其指令由 `pick` 修改为 `drop` 来标记欲删掉的操作项[^4]。 4. 完成修改保存退出后,继续执行剩余步骤直至结束。 5. 强制更新远程分支同步最新改动: ```bash git push --force ``` 这种方式特别针对少量明确的目标提交适用。 --- #### 总结注意事项 无论采取哪种策略处理问题,都务必小心谨慎以免造成不可逆的数据丢失风险。建议先备份原始仓库再实施任何破坏性的动作。另外值得注意的是,一旦公开共享过含有敏感资料的版本,则即便后来成功抹去它们也可能无法阻止他人先前已复制走相关内容的可能性存在。 ```python # 示例 Python 脚本片段展示自动化流程控制逻辑结构而非实际功能实现细节 def clean_git_history(repo_path, pattern=None): import subprocess try: if not os.path.exists(os.path.join(repo_path,".git")): raise Exception("Not a valid GIT repository.") command = ["java", "-jar", "bfg.jar"] if pattern is None: # Reset entire history method... pass else: command.extend(["--delete-commits", f"{pattern}", repo_path]) result=subprocess.run(command,capture_output=True,text=True) print(result.stdout) except Exception as e: print(f"Error occurred:{e}") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值