Git学习笔记

Git是一个强大的分布式版本控制系统,用于追踪和管理软件开发过程中的源代码变更。它通过跟踪文件的不同状态(如Untracked、Unmodify、Modified和Staged),帮助开发者有效地管理代码版本。Git提供了丰富的命令集,如初始化仓库、提交代码、推送到远程仓库、切换分支和管理标签等,极大地简化了多人协作开发和代码管理的复杂性。

Git

Git,多人协作开发与版本控制工具

文件的状态

  • Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.

  • Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

  • Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改

  • Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

常用命令

  • git init 初始化git仓库

  • git log 查看记录日志

  • git remote 查看远程仓库配置

  • git remote add <remote repository name> <remote repository url> 添加远程仓库

  • git config --global user.name "username" 设置本机的Git用户名

  • git config --global user.email "email" 设置本机的Git邮箱地址

  • git status 查看文件状态

  • git add <files> 添加文件到暂存区

  • git commit -m "message" 将暂存区中的文件提交到本地仓库

  • git push &lt;remote &gt; <branch> 将本地仓库的提交记录同步到远程仓库

    • 可选参数 -u (--up-stream)将本次推送的远程仓库与分支的分支设为默认推送下次推送可以不写推送的位置信息
    • 可选参数 -f 忽略冲突强制推送
    • --tags 推送标签
    • --delete origin tag &lt;tag name&gt; 删除远程仓库的标签
  • git reset 撤销文件的暂存

    • -- hard <提交的哈希ID> 还原到某次提交的文件状态
  • git pull 将远程仓库的更改同步到本地

  • git checkout 切换分支

  • git branch &lt;branch name&gt; 从当前的分支克隆一条新的分支

  • git tag 列出标签

    • -l <标签关键字> 查找目标标签
    • &lt;tag name&gt; -m "message" 标签名 创建标签
    • -d &lt;tag name&gt; 删除标签
  • git show 查看当前提交的详细信息