Git 是一个分布式版本控制系统,可帮助开发人员在任何规模的项目上进行协作。
Linux 内核的开发者 Linus Torvalds 在 2005 年创建了 Git,以帮助控制 Linux 内核的开发。
分布式版本控制系统是一种帮助您跟踪对项目中文件所做更改的系统。
所有的更改历史记录保存在本地,让你可以轻松地恢复到项目的先前版本,以防出现问题。
Git让团队协作更简单,团队中的每个人都可以保留他们在本地机器上工作的存储库的完整备份。
然后,借助像 BitBucket、GitHub 或 GitLab 这样的外部服务器,他们可以安全地将存储库存储在一个地方。
这样,团队的不同成员可以将其复制到本地,并且每个人都可以清楚地了解整个团队所做的所有更改。
Git 有许多不同的命令可供您使用。我发现这五十个是我最常使用的(记住这些,对你是有帮助的)
下面的命令返回有关您的 git 配置的信息列表,包括用户名和电子邮件:
git config -l
使用下面的命令,您可以配置您的用户名:
git config --global user.name "Fabio"
此命令可让您设置将在提交中使用的用户电子邮件地址。
git config --global user.email "signups@fabiopacifici.com"
您可以将登录凭据存储在缓存中,这样您就不必每次都输入它们。只需使用此命令:
git config --global credential.helper cache
一切从这里开始。第一步是在您的项目根目录中本地初始化一个新的 Git 存储库。您可以使用以下命令执行此操作:
git init
下面的命令将向暂存区添加一个文件。只需将 filename_here
替换为要添加到暂存区的文件的名称。
git add filename_here
如果要将项目中的所有文件添加到暂存区,可以使用通配符.
并且将为您添加每个文件。
git add .
使用下面命令中的星号,您可以将所有以“fil”
开头的文件添加到暂存区。
git add fil*
此命令将显示当前存储库的状态,包括暂存
、未暂存
和未跟踪
文件。
git status
此命令将在终端中打开一个文本编辑器,您可以在其中编写完整的提交消息。
提交消息由简短的更改摘要、一个空行和之后更改的完整描述组成。
git commit
您可以在不打开编辑器的情况下添加提交消息。此命令仅允许您为提交消息指定简短摘要
git commit -m "your message in here"
您可以使用 -a
和 -m
选项使用单个命令添加和提交跟踪文件。
git commit -a -m "your message in here"
此命令显示当前仓库的提交历史记录:
git log
此命令显示提交的历史记录,包括所有文件及其更改:
git log -p
此命令显示特定提交。
将 commit-id
替换为您在提交日志中在单词 commit 之后找到的提交的 ID。
git show commit-id
此命令将在 Git 日志显示有关每次提交中的一些统计信息,包括更改的行和文件名
git log --stat
您可以将文件作为参数传递以仅查看特定文件的更改。git diff
默认仅显示未暂存
的更改。
我们可以使用 --staged
标志让 diff 可以查看任何暂存更改
git diff
git diff all_checks.py
git diff --staged
此命令会打开一个提示并询问您是否要暂存更改,并包括其他选项。
git add -p
此命令需要提交消息来解释文件被删除的原因。
git rm filename
此命令暂存更改,然后它需要提交消息。
git mv oldfile newfile
创建一个 .gitignore
文件并提交
git checkout filename
您可以使用 -p 选项标志来指定要重置的更改
git reset HEAD filename
git reset HEAD -p
git commit --amend
允许您修改和添加对最近提交的更改。
git commit --amend
!!注意!!
:使用修正修复本地提交很棒,您可以在修复后将其推送到共享存储库。但是你应该避免修改已经公开的提交。
git revert
将创建一个与给定提交中的所有内容相反的新提交。
我们可以使用像这样的 head 别名来恢复最新的提交:
git revert HEAD
您可以使用其提交ID还原旧提交。这将打开编辑器,以便您可以添加提交消息。
git revert commit_id_here
默认情况下,您有一个分支,即主分支。使用此命令,您可以创建一个新分支。Git 不会自动切换到它——您需要使用下一个命令手动切换。
git branch branch_name
当您想使用不同的或新创建的分支时,您可以使用以下命令:
git checkout branch_name
您可以使用 git branch
命令查看所有创建的分支。它将显示所有分支的列表,并用星号标记当前分支并以绿色突出显示。
git branch
这个命令中,您可以立即创建并切换到新分支。
git checkout -b branch_name
当您完成一个分支的工作并合并它时,您可以使用以下命令将其删除:
git branch -d branch_name
要将当前所在分支的历史记录与 branch_name 合并,您需要使用以下命令:
git merge branch_name
我们可以使用 --graph
来获取提交日志以显示为图表。
也可以使用 --oneline
将提交消息限制为一行。
git log --graph --oneline
git log --graph --oneline --all
如果要放弃合并并重新开始,可以运行以下命令:
git merge --abort
此命令将远程存储库添加到您的本地仓库(只需将 https://repo_here 替换为您的远程仓库 URL)。
git add remote https://repo_here
您可以使用以下命令查看本地存储库的所有远程仓库
git remote -v
只需将 origin 替换为获得的远程仓库名称 运行 git remote -v 命令。
git remote show origin
当您的所有工作都准备好保存在远程仓库中时,您可以使用以下命令推送所有更改:
git push
如果其他团队成员正在修改您的仓库,您可以使用以下命令拉取对远程仓库所做的最新更改:
git pull
此命令显示 Git 为当前仓库跟踪的所有远程分支的名称:
git branch -r
此命令将从远程存储库下载更改,但不会在本地分支上执行合并(因为 git pull
会这样做)
git fetch
提交后,Git 会建立一个日志。您可以使用以下命令查找远程存储库日志:
git log origin/main
如果远程存储库有您想要与本地合并的更改,则此命令将为您执行此操作:
git merge origin/main
这使您可以更新远程分支而无需将任何内容合并到本地分支。您可以调用 git merge
或 git checkout
来进行合并。
git remote update
如果要将分支推送到远程存储库,可以使用以下命令。请记住添加 -u 以创建上游分支:
git push -u origin branch_name
如果您不再需要远程分支,可以使用以下命令将其删除:
git push --delete origin branch_name
您可以使用 git rebase
将完成的工作从一个分支转移到另一个分支。
git rebase branch_name
如果您没有正确执行git rebase
,它会变得非常混乱。
在使用这个命令之前,我建议你重新阅读这里的官方文档点击这里
您可以使用 -i 标志以交互方式运行 git rebase
。它将打开编辑器并显示一组您可以使用的命令。
- git rebase -i master
- # p, pick = use commit
- # r, reword = use commit, but edit the commit message
- # e, edit = use commit, but stop for amending
- # s, squash = use commit, but meld into previous commit
- # f, fixup = like "squash", but discard this commit's log message
- # x, exec = run command (the rest of the line) using shell
- # d, drop = remove commit
- 复制代码
此命令将强制推送请求。
这通常适用于拉取请求分支,因为其他人不应该克隆它们。
但这不是你想用公共仓库做的事情。
git push -f