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 保存当前更改。

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

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

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

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


目录
相关文章
|
1月前
|
存储 网络安全 开发工具
【GIT】Git常用命令学习
【GIT】Git常用命令学习
34 1
|
13天前
|
开发工具 git
GIT日常命令收集
这些命令是GIT日常操作中常用的,但GIT的功能远不止这些,更多高级功能需要通过学习和实践来掌握。
11 0
|
14天前
|
开发工具 git
GIT日常命令收集
这些命令是GIT日常操作中常用的,但GIT的功能远不止这些,更多高级功能需要通过学习和实践来掌握。
12 0
|
17天前
|
网络安全 开发工具 数据安全/隐私保护
git 常用命令【编程必备】
git 常用命令【编程必备】
11 0
|
24天前
|
网络安全 开发工具 数据安全/隐私保护
git最全最常用的命令整理
git最全最常用的命令整理
25 0
|
24天前
|
开发工具 git
掌握Git必备:最常用的50个Git命令
掌握Git必备:最常用的50个Git命令
22 0
|
24天前
|
开发工具 git
git 的基本命令
git 的基本命令
|
27天前
|
人工智能 运维 中间件
一文了解Git(所有命令)附带图片
一文了解Git(所有命令)附带图片
24 0
|
1月前
|
存储 IDE 开发工具
Git 常用命令大全
Git 常用命令大全
33 0

相关实验场景

更多