git经验

1.git config  --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。

2.pwd 命令是用于显示当前的目录。

3.通过命令 git init 把这个目录变成git可以管理的仓库

4.所有的版本控制系统,只能跟踪文本文件的改动,可以知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道

5.把文件添加到版本库中(区分大小写):

     第一步:使用命令 git add readme.txt添加到暂存区里面去

     第二步:用命令 git commit告诉Git,把文件提交到仓库

6.Changes to be committed:已加进暂存区

   Changes not staged for commit:没有加入暂存区

7.git diff readme.txt  查看修改

8.查看下历史记录 git log  or git log --pretty=oneline

9.回退:

     第一种是:git reset  --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,git reset  –hard HEAD~100 即可。

     第二种:git reset  –hard 版本号  查询版本号:git reflog

10.cat 文件,打开的是工作区的文件

11.cat 按enter 后退出:ctrl +d

12.git checkout -- readme.txt(注意 -- 两边都有空格)

    把readme.txt文件在工作区做的修改全部撤销,这里有2种情况,如下:
    a.readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
    b.readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。

13.删除文件:rm b.txt

14.恢复文件:该文件之前被提交过,那么删除文件后,没有提交的话,

     git checkout -- b.txt能恢复文件


<think>嗯,用户问的是关于git代码管理的经验。我需要先理解他们可能的需求。可能他们是一个刚接触Git的新手,想要了解基本的最佳实践,或者是有一定经验但想优化现有的工作流程。首先,我应该从基础开始,比如分支管理策略,推荐使用Git Flow或者GitHub Flow,这样用户可以根据项目规模选择合适的策略。 接下来,提交规范也很重要。Conventional Commits标准能帮助团队更好地理解提交历史,特别是结合自动化工具时。用户可能想知道如何实施这些规范,可能需要工具如Husky或Commitlint来强制执行。 然后,代码审查部分,Pull Request流程是关键。需要强调在合并前进行代码审查的重要性,以及如何利用GitHub或GitLab的工具来促进这一过程。可能还要提到自动化测试的集成,确保代码质量。 权限管理方面,分层级权限和保护主分支是常见的做法,用户可能想知道如何设置这些权限,比如在GitLab或GitHub中的具体操作步骤。 备份与恢复策略,比如使用git bundle或定期推送镜像仓库,这对防止数据丢失很重要。用户可能没有意识到备份的重要性,或者不知道具体怎么做。 高级技巧如rebase和cherry-pick的使用场景,用户可能遇到合并冲突或需要挑选特定提交的情况,需要解释这些命令的正确使用方法。 常见问题排查部分,解决冲突、恢复误删分支、处理大文件等都是常见的痛点,需要给出具体的解决步骤和工具推荐,比如git-lfs。 最后,相关问题要覆盖用户可能遇到的其他问题,比如分支策略选择、提交规范工具、代码审查工具、权限设置和冲突解决方法。这样用户可以根据自己的情况深入探索。 需要确保回答结构清晰,步骤明确,并且提供实际例子和工具推荐,帮助用户实际应用这些经验。同时注意避免过于技术化的术语,保持解释的易懂性,适合不同水平的用户理解。</think>以下是 Git 代码管理的关键经验总结,涵盖分支策略、提交规范、协作流程和常见问题处理: --- ### **1. 分支管理策略** - **主分支**:`main`/`master`(生产环境代码) - **开发分支**:`develop`(集成所有功能分支) - **功能分支**:`feature/xxx`(基于 `develop` 创建,开发完成后合并回 `develop`) - **热修复分支**:`hotfix/xxx`(直接从 `main` 分支创建,修复后合并回 `main` 和 `develop`) - **发布分支**:`release/xxx`(用于预发布测试,合并到 `main` 后删除) **推荐工具**: ```bash # 创建并切换分支 git checkout -b feature/login # 合并分支(优先使用 --no-ff 保留合并痕迹) git merge --no-ff feature/login ``` --- ### **2. 提交规范** - **Commit Message 格式**(推荐 [Conventional Commits](https://www.conventionalcommits.org/)): ``` <type>: <subject> # 示例:feat: add password strength meter <空行> <body> # 可选,详细描述修改内容 <空行> <footer> # 可选,关联 Issue(如:Fix #123) ``` - **常用 type**: - `feat`:新增功能 - `fix`:修复 Bug - `docs`:文档更新 - `style`:代码格式调整(不影响逻辑) - `refactor`:重构 - `test`:新增测试 - `chore`:构建/依赖更新 **工具辅助**: - 提交前检查:`husky` + `commitlint` 自动校验格式 - 模板配置: ```bash git config --global commit.template ~/.gitmessage.txt ``` --- ### **3. 协作流程** - **代码审查(Code Review)**: 1. 在 Git 平台(GitHub/GitLab)创建 Pull Request(PR) 2. 指定至少 1 名 reviewer 3. 通过 CI/CD 检查后合并(如 GitHub Actions/Travis CI) - **冲突解决**: ```bash git merge feature/xxx # 遇到冲突时会标记冲突文件 # 编辑冲突文件,标记区域为: <<<<<<< HEAD 当前分支内容 ======= 合并分支内容 >>>>>>> feature/xxx git add <文件> # 标记冲突已解决 git commit ``` --- ### **4. 权限与安全** - **分层级权限管理**: - **仓库管理员**:管理分支保护规则、成员权限 - **开发者**:只能推送至功能分支,禁止直接提交 `main/develop` - **CI/CD 用户**:仅允许自动部署时推送特定分支 - **分支保护规则**(GitHub/GitLab 配置示例): - 禁止强制推送(Force Push) - 合并前要求 PR 审查通过 - 要求 CI/CD 检查通过 --- ### **5. 备份与恢复** - **本地备份**: ```bash # 打包单个分支(含历史) git bundle create backup.feature feature/xxx # 恢复备份 git fetch /path/to/backup.bundle feature:feature/xxx ``` - **远程镜像**: ```bash git remote add mirror ssh://git@backup-server/repo.git git push mirror --mirror ``` --- ### **6. 高级技巧** - **变基(Rebase)替代合并**: ```bash git checkout feature/xxx git rebase develop # 将 feature 分支的提交“移植”到 develop 最新提交之后 # 冲突解决后继续 git rebase --continue ``` - **挑选提交(Cherry-Pick)**: ```bash git cherry-pick abc1234 # 将某次提交应用到当前分支 ``` --- ### **常见问题排查** 1. **合并冲突**:使用 `git diff` 查看冲突区域,手动编辑后 `git add` 标记解决。 2. **误删分支**:通过 `git reflog` 查找分支删除前的提交记录并恢复。 3. **大文件误提交**:使用 `git filter-branch` 或 `BFG Repo-Cleaner` 清理历史记录。 4. **提交信息错误**:未推送时用 `git commit --amend` 修改,已推送则用 `git push -f`(谨慎操作)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值