Git的基本使用入门

时间:2024-10-14 13:52:43

参考:Git速查

git的基本概念

git常用命令大部分是基于三大分区来执行的。先来了解一些专有名词吧。

  • 工作区,也叫 Working Directory
  • 暂存区,也叫 stage,index
  • 版本库,也叫本地仓库,commit History

image-20240725215114145

将代码推送到github仓库

参考:添加文件到仓库

  • 打开git bash,进入项目目录

  • 执行命令初始化本地仓库

    git init
    git add .
    git commit -m "Your comment"
    
  • 复制你的github仓库地址<URL>

  • 关联本地与远程仓库:

    • 对于public仓库,将本地仓库与远程仓库关联起来

      git remote add origin <URL>
      
    • 对于private仓库,将本地仓库与远程仓库关联起来

      persional access token请前往github的个人设置,开发者选项

      git remote add origin https://{USERNAME}:{PERSIONAL_ACCESS_TOKEN}@github.com/username/reponame.git
      
      ## 可能还需要保存凭证依据
      git config --global credential.helper cache
      git config --global credential.helper 'cache --timeout=3600'
      
    • 要修改url可以:

      git remote -v #查看
      git remote set-url origin <new_url> #修改
      git remote remove origin # 删除
      
  • 更改为main分支

    git branch -M main
    
  • 将本地的提交推送到github仓库

    git push -u origin main -f
    

分支相关

  • 查看当前分支

    git branch
    
  • 重命名当前分支

    git branch -M <new_name>
    
  • 更换当前使用的分支

    git checkout <branch_name_you_want_to_use>
    

查看修改与记录

  • 查看未提交的更改:显示工作目录中有那些文件被修改了,哪些文件被添加了,以及哪些文件还没有被提交

    git status
    
  • 查看具体的文件更改:显示工作目录中所有未暂存的更改内容。它会详细显示每个文件中哪些行被添加、删除或修改了。

    git diff
    git diff filename #只想查看特定文件的更改,可以指定文件名
    
  • 查看暂存区的更改:显示已经被添加到暂存区(staging area)但还没有提交的更改内容。

    git diff --staged
    
  • 查看提交记录

    git log
    git log -p #查看每次提交的更改内容
    git log -p filename #查看具体文件的修改历史
    git log -n 5 #查看最近的五次提交日志
    

gitignore文件

.gitignore 文件用于告诉 Git 哪些文件或目录不应该被版本控制系统跟踪。其格式非常简单,每行一个规则,可以包含文件名、目录名、通配符等。

基本格式

每行一个规则:

  • 空行或以 # 开头的行会被忽略。
  • / 开头表示相对于仓库根目录。
  • * 匹配零个或多个字符。
  • ** 匹配零个或多个目录,包括子目录。
  • ? 匹配单个字符。
  • [abc] 匹配方括号中任意一个字符。
  • ! 开头表示取反,即不要忽略这些文件或目录。

例如:

### custom ###
/logs/**
/src/main/resources/application-dev.yml

如果已经将应该被忽略的文件提交到了 Git 仓库,修改 .gitignore 后并不会自动将已提交的文件从仓库中删除。

以下是一种常见的方法来处理这种情况:

# 清理缓存
git rm -r --cached .

# 将所有忽略文件再次加入暂存区
git add .

# 提交更新
git commit -m "更新 .gitignore 文件并清理已跟踪文件"

git push --force