Git使用指南

1. 初始化与配置 (Initialization & Configuration)

git config

  • 作用: 设置Git配置信息。
  • 用法:

    设置全局提交者名称

    git config --global user.name “CommitUserName”

    设置全局提交者邮箱

    git config --global user.email “email@example.com”

git init

  • 作用: 在当前目录初始化一个新的Git仓库。
  • 用法:
    git init

git clone

  • 作用: 从远程URL克隆一个仓库到本地。
  • 用法:
    git clone [远程仓库URL]
  • 注释:可以配置ssh key来避免“梯子问题”

2. 日常工作流 (Daily Workflow)

git status

  • 作用: 显示工作区和暂存区的状态。
  • 用法:
    git status

git add

  • 作用: 将文件更改添加到暂存区。
  • 用法:
    # 添加指定文件
    git add [文件名]
    
    # 添加所有已修改和新创建的文件
    git add .

git commit

  • 作用: 将暂存区的内容记录为一个新的提交。
  • 用法:
    git commit -m “提交描述信息”

git log

  • 作用: 显示提交历史记录。
  • 用法:
    # 显示完整历史
    git log
    
    # 显示单行简洁历史
    git log --oneline
    
    # 显示带分支拓扑的图形化历史
    git log --graph --oneline --all

    日常使用:

    在初始化后(init,添加remote仓库),使用git add . 来将所有的文件添加到暂存区,然后git commit -m "" 来提交,最后再git push -u origin main 提交并建立上游分支。

3. 分支管理 (Branch Management)

git branch

  • 作用: 列出、创建或删除分支。
  • 关键: 是使用git在多个设备间提交不同的任务与checkpoint的方法
  • 用法:
    # 列出所有本地分支
    git branch
    
    # 列出所有本地及远程分支
    git branch -a
    
    # 创建新分支
    git branch [新分支名]
    
    # 删除已合并的分支
    git branch -d [分支名]

git checkout

  • 作用: 切换分支或恢复工作区文件。
  • 用法:
    # 切换到已存在的分支
    git checkout [分支名]
    
    # 创建并立即切换到新分支
    git checkout -b [新分支名]

git merge

  • 作用: 将指定分支的历史合并到当前分支。
  • 用法:
    # 切换到接收合并的分
    git checkout main
    
    # 合并feature分支
    git merge [feature分支名]

4. 远程协作 (Remote Collaboration)

git remote

  • 作用: 管理一组被追踪的远程仓库。
  • 用法:
    # 查看远程仓库的详细信息
    git remote -v
    
    # 添加一个新的远程仓库
    git remote add [别名] [远程仓库URL]

git push

  • 作用: 将本地分支的提交更新到远程仓库。
  • 用法:
    # 推送到远程仓库的指定分支
    git push [远程仓库别名] [分支名]
    
    # 首次推送并建立上游链接
    git push -u origin main

git pull

  • 作用: 从远程仓库获取最新版本并与本地分支合并。
  • 用法:
    git pull [远程仓库别名] [分支名]

git fetch

  • 作用: 从远程仓库下载对象和引用,但不自动合并。
  • 用法:
    git fetch [远程仓库别名]

5. 撤销与修改 (Reverting & Amending)

git checkout -- <file>

  • 作用: 撤销工作区中对指定文件的修改。
  • 用法:
    git checkout -- [文件名]

git reset

  • 作用: 将文件从暂存区移出,但保留工作区的修改。
  • 用法:
    git reset HEAD [文件名]

git commit --amend

  • 作用: 修改最后一次提交的内容或提交信息。
  • 用法:
    # 添加新文件后,合并到上一次提交
    git add [新文件]
    git commit --amend --no-edit
    
    # 仅修改上一次的提交信息
    git commit --amend -m “新的提交信息”

6. 实用技巧 (Practical Tips)

.gitignore

  • 作用: 指定Git需要忽略、不进行版本控制的文件或目录模式。
  • 用法: 在项目根目录创建 .gitignore 文件,写入忽略规则。
  • 关键: 一定要忽视 .env(环境内容)、大型数据与模型文件、敏感信息、缓存与虚拟环境。
    # 忽略数据集
    *.csv
    /data/
    # 忽略Python缓存和虚拟环境
    __pycache__/
    .venv/
    # 忽略敏感信息
    .env

git lfs (Large File Storage)

  • 作用: 使用指针替代大型文件,以优化对大型二进制文件的版本控制。
  • 用法:
    # 安装LFS (仅需一次)
    git lfs install
    
    # 开始追踪指定文件类型
    git lfs track “*.h5”
    git lfs track “*.pkl”
    
    # 确保.gitattributes文件被提交
    git add .gitattributes
Tags:

发表回复

Your email address will not be published. Required fields are marked *.

*
*

Who Am I?

SDU Statistics –> WHU DS

张敬老师课题组研究生

主要对具身智能、ML、DRL相关工作有兴趣,现在在进行Digital Human相关工作,欢迎合作指导。

热爱🎸、⚽、📕,永远热爱生活

联系我

地址
B103,计算机学院,武汉大学

联系方式

cdj_wh@126.com