Git项目管理——Git常用命令汇总(五)

简介: Git项目管理——Git常用命令汇总(五)

一、配置Git

1.1 设置本地的用户名和用户邮箱

这两条命令是用来配置Git用户信息的,它们会将用户名和用户邮箱设置为Git配置的一部分。

git config --global user.name "teduweb"            //(用户名)
git config --global user.email "web@tedu.com"      //(用户邮箱)
  1. git config --global user.name "teduweb": 这条命令设置全局用户名为"teduweb"。--global标志表示这个用户名会被应用到这台计算机上所有的Git仓库。如果你没有为特定的Git仓库设置局部用户名,Git会使用这个全局用户名。
  2. git config --global user.email "web@tedu.com": 这条命令设置全局用户邮箱为"web@tedu.com"。同样,--global标志表示这个邮箱地址会被应用到这台计算机上所有的Git仓库。这个邮箱地址用于关联你的提交操作到你的身份,通常也是服务如GitHub或GitLab用来关联提交到具体用户的方式。

       这些设置非常重要,因为每次你进行提交(commit)时,Git都会使用这些用户信息来标记谁做了这些改动。这样,团队中的其他成员就可以看到每个改动是谁做的,同时也允许你的工作被正确地归属到你名下。

1.2 要查看Git配置信息

       运行git config --list命令可以显示所有Git配置级别的当前设置,包括本地、全局和系统级别的配置。这是查看所有当前Git配置的快捷方式,可以帮助你了解Git是如何配置的,以及可能需要调整哪些设置。

git config --list
  1. 本地配置:针对特定仓库的配置,存储在项目目录下的.git/config文件中。
  2. 全局配置:适用于当前用户在本机上的所有仓库,配置存储在用户主目录下的配置文件中,例如Linux和macOS上的~/.gitconfig或~/.config/git/config文件,以及Windows上的C:\Users\<用户名>\.gitconfig。
  3. 系统配置:适用于系统上所有用户的所有仓库,配置文件通常位于/etc/gitconfig(Linux或macOS)或C:\ProgramData\Git\config(Windows)。

       当你运行git config --list命令时,它会列出所有当前的配置,包括用户名、邮箱、别名等设置。如果相同的配置项在不同的配置级别中被设置了不同的值,Git会按照以下的优先级来决定使用哪个值:本地 > 全局 > 系统。这意味着本地配置会覆盖全局和系统配置,全局配置会覆盖系统配置。

如果你只想查看特定级别的配置,可以使用以下命令:

  • git config --local --list:仅显示当前仓库的配置。
  • git config --global --list:仅显示当前用户的全局配置。
  • git config --system --list:仅显示适用于所有用户的系统级别配置。
  • git config user.name:仅查看特定的配置项,例如用户名
  • git config user.email:仅想查看电子邮件配置

       请注意,出于安全原因,某些配置信息(如密码)可能不会直接显示在git config --list的输出中。

1.3 初始化Git仓库

  git init 是一个Git命令,用于在当前目录中初始化一个新的Git仓库。执行这个命令后,Git会在当前目录下创建一个名为 .git 的子目录,其中包含了初始化的Git仓库所必需的所有文件和目录结构。

git init

1.4 博客详解:

Git项目管理——仓库概述(一)-CSDN博客

二、提交项目和版本回退

2.1 常看当前工作目录的状态

 git status 是一个Git命令,用于显示Git仓库中当前工作目录的状态。它是查看仓库中哪些文件处于暂存状态、哪些文件有更改但还没有暂存,以及哪些文件还没有被Git跟踪(即新文件)的非常有用的命令。

git status

2.2 往暂存区中添加

 git add . 是一个Git命令,用于将当前目录(包括所有子目录)下的所有更改(包括新文件、修改过的文件和删除的文件)添加到Git的暂存区。这个命令中的.表示当前目录。

git add .

当你执行git add .时,Git会执行以下操作:

  1. 跟踪新文件:如果当前目录中有任何未被Git跟踪的新文件,git add .会将这些文件添加到暂存区,使它们准备好被包含在下一个提交中。
  2. 暂存修改的文件:对于已经存在于Git仓库中但被修改过的文件,git add .会将这些修改添加到暂存区。
  3. 暂存删除的文件:如果文件被删除,git add .会将这个删除操作添加到暂存区,以便在提交时记录这个删除。
  4. 忽略.gitignore文件:git add .会忽略那些在.gitignore文件中指定的应该被忽略的文件和目录。

       使用git add .是一个快速将所有更改添加到暂存区的方法,尤其是当你想要提交当前目录下的所有更改时。然而,这也意味着你可能会不小心添加一些不打算提交的文件,因此在使用这个命令时要小心。

       在执行git add .之后,你可以使用git status来查看哪些文件已经被添加到暂存区,以及哪些文件还没有被添加。然后,你可以使用git commit来提交这些暂存的更改到版本历史。

2.3 添加到本地仓库

 git commit 是 Git 版本控制系统中的一个核心命令,用于将更改记录(commit)到你的本地仓库的历史记录中。在你使用 git add 命令将更改添加到暂存区之后,你就可以使用 git commit 来实际保存这些更改到仓库中。

       当你执行 git commit -m "提交说明" 时,-m 参数后面跟随的是本次提交的消息,这个消息应该清晰准确地描述你所做的更改,以便其他协作者(包括未来的你)能够理解这次提交的目的和内容。

git commit -m "提交说明"
  • git commit: 这是 Git 命令,用于创建一次新的提交。
  • -m: 这是一个命令行选项,用于指定后面紧跟的是一次提交的消息。
  • "提交说明": 这部分是你应该替换成具体描述的地方。提交说明应该是一段简短但描述性的文本,用于记录这次更改的主要信息。

例如,如果你修改了一个名为 index.html 的文件,并且更改了页面的标题,你的提交信息可能会是这样的:

git commit -m "Update page title in index.html"

       此命令将创建一个新的提交,包含所有你已经用 git add 添加到暂存区的文件的更改,并且这个提交会带有一个消息 "Update page title in index.html"。

2.4 查看提交日志

  git log 是一个非常有用的 Git 命令,它允许你查看 Git 仓库的提交历史。这个命令显示了一系列提交(commits),其中包括每个提交的唯一识别码(SHA-1哈希)、作者的信息、提交日期以及提交消息。

git log
  • git log -n <limit>: 显示最近的 <limit> 条提交。
  • git log --oneline: 显示每个提交的信息在一行内,通常只包含哈希的前几位和提交消息。
  • git log --graph: 以图形的方式展示分支和合并历史。
  • git log --author="Author Name": 只显示特定作者的提交。
  • git log --since=2.weeks: 列出最近两周内的提交。
  • git log --pretty=format:"%h - %an, %ar : %s":按特定格式显示日志
  •  git log --after="YYYY-MM-DD":在特定日期之后的提交
  • git log --grep="<keyword>": 搜索提交信息中包含特定关键字的提交

2.5 版本回退

  git reset --hard <commit> 是一个强有力的 Git 命令,它用于将当前分支的 HEAD(即当前分支的最新提交)重置到指定的提交 <commit>,并且会重置暂存区和工作目录以匹配那个提交。这里的 <commit> 指的是你想要回退到的目标提交的哈希值(版本ID号)。

       要注意的是,使用 --hard 选项会导致工作目录中的所有未提交的更改和暂存的更改都被清除,换句话说,所有在 <commit> 之后的更改都将丢失。这是一个不可逆的操作,因此在执行它之前,你需要确保不会因此而丢失重要的数据。

git reset --hard commit  //这里的commit是版本id号
  1. HEAD移动:这个命令首先将当前分支的HEAD指针移动到指定的 <commit>。从此处开始,该分支的最新提交现在是该 <commit>。
  2. 暂存区重置:接下来,暂存区(即索引或缓存)被更新,以便所有文件的状态都匹配到了在 <commit> 中的状态。这意味着所有在 <commit> 后被暂存的更改都将丢失。
  3. 工作目录重置:最后,工作目录中的文件也会被更新,以确保它们的内容匹配到 <commit> 中的内容。此操作会删除所有 <commit> 之后的更改。

2.6 博客详解:

Git项目管理——提交项目和版本回退(二)-CSDN博客

三、分支操作

  git branch 命令在 Git 中被用于多种与分支相关的操作。它可以列出、创建、删除分支,以及执行其他分支管理的任务

git branch

3.1 列出分支:

       只输入 `git branch` 会列出你的本地仓库中所有的分支。当前分支会被标记并以星号 (*) 高亮显示。

       使用 `git branch -a` 可以查看本地和远程追踪分支。

3.2 创建分支:

       执行 `git branch <branch-name>` 可以基于当前的 HEAD 创建一个新的分支。

3.3 删除分支:

        `git branch -d <branch-name>` 用于删除本地分支。这个命令会有安全检查,只允许删除已经被合并的分支。

       `git branch -D <branch-name>` 强制删除一个分支,即使它包含未合并的更改。

3.4  重命名分支:

       使用 `git branch -m <old-name> <new-name>` 可以重命名分支。

3.5 查看分支:

       `git branch -v` 会列出每个分支的最后一次提交。

       `git branch --merged` 列出所有已经合并到当前分支的分支。

       `git branch --no-merged` 列出所有尚未合并到当前分支的分支。

3.6 切换分支:

git checkout new-feature

       可以使用 git checkout new-feature 命令。这将会更新你的工作目录以匹配 new-feature 分支的内容,同时也会更新 Git 的 HEAD 指针来指向该分支,意味着任何新的提交都将会被作为这个分支的一部分。

3.7 合并分支:

 git merge feature-branch 命令用于将指定的分支 feature-branch 合并到当前分支。执行这个命令时,Git 会尝试将 feature-branch 分支上的更改与当前分支的最新提交进行合并。

       1.确保你在目标分支上:在执行合并之前,确保你当前所在的分支是你想要合并到的目标分支。例如,如果你想要将 feature-branch 合并到 main 分支,你需要先切换到 main 分支:

git checkout main

       2.执行合并:使用 git merge 命令来合并 feature-branch

git merge feature-branch

       3.解决冲突(如果存在): 如果 feature-branch 和当前分支有冲突(即它们修改了相同的文件的相同部分),Git 会暂停合并过程并提示你解决这些冲突。你需要手动编辑这些文件来解决冲突,然后使用 git add 命令标记这些文件为已解决,最后使用 git commit 来完成合并。

       4.完成合并: 如果没有冲突,或者冲突已经解决,Git 会自动创建一个新的合并提交,将 feature-branch 的更改集成到当前分支。

       5.清理:合并完成后,你可能想要删除 feature-branch 分支(如果不再需要):

git branch -d feature-branch

3.8 博客详解:

Git项目管理——分支(三)-CSDN博客

四、远程仓库:

4.1 向远程仓库推送

       在Git中,git push -u 远程仓库地址 分支名称 是一个用于将本地分支推送到远程仓库并设置上游分支的命令。这个命令通常在你第一次推送本地分支到远程仓库时使用,以便于后续的推送和拉取操作更加简便。

git push -u 远程仓库地址 分支名称
  • git push: 这是Git的基本命令之一,用于将本地仓库的更改推送到远程仓库。
  • -u: 这是一个选项,代表“上游”(upstream)。当你使用-u选项时,Git会设置一个跟踪关系,即本地分支与远程分支之间的关联。这样,你之后可以使用git push和git pull命令而不需要指定远程仓库和分支名称,Git会默认使用这个关联的分支。
  • 远程仓库地址: 这是远程仓库的URL或名称。例如,如果远程仓库在GitHub上,这可能是https://github.com/username/repository.git或简写为origin。
  • 分支名称: 这是你想要推送的本地分支的名称。例如,master、main、feature/new-feature等。
  1. 将本地分支feature/new-feature的更改推送到远程仓库origin。
  2. 在远程仓库origin上创建一个同名的分支feature/new-feature(如果它还不存在)。
  3. 设置本地分支feature/new-feature跟踪远程分支origin/feature/new-feature。

4.2 博客详解:

Git项目管理——远程仓库(四)-CSDN博客

五、常用命令简介:

  1. git init
  • 初始化一个新的Git仓库。在项目目录中运行此命令会创建一个.git子目录,其中包含仓库的所有必要文件。
  • 示例:git init
  1. git clone [url]
  1. git add [file]
  • 将文件的更改添加到暂存区,准备提交。
  • 示例:git add file.txt
  1. git commit -m "message"
  • 提交暂存区的更改到本地仓库,并附带一条描述性的提交消息。
  • 示例:git commit -m "Add new feature"
  1. git status
  • 显示工作目录和暂存区的状态,包括哪些文件被修改了,哪些文件被添加到了暂存区。
  • 示例:git status
  1. git push [remote] [branch]
  • 将本地分支的更改推送到远程仓库。
  • 示例:git push origin main
  1. git pull [remote] [branch]
  • 从远程仓库拉取更改并合并到当前分支。
  • 示例:git pull origin main
  1. git branch
  • 列出、创建或删除分支。
  • 示例:git branch 列出所有分支。
  • 示例:git branch new-feature 创建一个新分支。
  1. git checkout [branch]
  • 切换到指定的分支。
  • 示例:git checkout new-feature
  1. git merge [branch]
  • 将指定分支的更改合并到当前分支。
  • 示例:git merge new-feature
  1. git log
  • 查看提交历史,包括每个提交的作者、日期和消息。
  • 示例:git log
  1. git diff
  • 显示工作目录和暂存区之间的差异,或者两个提交之间的差异。
  • 示例:git diff 显示工作目录和暂存区之间的差异。
  1. git reset [commit]
  • 撤销指定提交之后的所有提交,并将更改保留在本地工作目录。
  • 示例:git reset HEAD~1 撤销上一次提交。
  1. git stash
  • 临时保存工作目录和暂存区的更改,以便切换到其他分支进行工作。
  • 示例:git stash 保存当前更改。

📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!

❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊

💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!

🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈


目录
相关文章
|
11天前
|
持续交付 项目管理 开发工具
Git项目管理——远程仓库(四)
Git项目管理——远程仓库(四)
22 2
|
11天前
|
项目管理 开发工具 git
Git项目管理——分支(三)
Git项目管理——分支(三)
13 2
|
11天前
|
Linux 项目管理 开发工具
Git项目管理——仓库概述(一)
Git项目管理——仓库概述(一)
19 1
|
1月前
|
Shell 网络安全 开发工具
GIT常用命令
GIT常用命令
|
1天前
|
存储 IDE 开发工具
Git 常用命令大全
Git 常用命令大全
11 0
|
11天前
|
缓存 项目管理 开发工具
Git项目管理——提交项目和版本回退(二)
Git项目管理——提交项目和版本回退(二)
18 2
|
1月前
|
网络安全 开发工具 git
版本管理 git 常用命令
版本管理 git 常用命令
27 1
|
1月前
|
存储 Linux 开发工具
Git 分布式版本控制系统基本概念和操作命令
Git 分布式版本控制系统基本概念和操作命令
131 0
|
1月前
|
算法 Java BI
云效产品使用报错问题之平台上导出的统计数据和 git 中使用命令导出的数据统计都对不上,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。