49

40个适用于Linux管理员和开发人员的git命令(上)

 4 years ago
source link: http://os.51cto.com/art/202005/615913.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Git是一个开源的分布式版本控制系统,它使开发人员可以跟踪其源代码中的更改。它是开源开发人员广泛使用的工具。尽管它是为协调编程任务而设计的,但是Git可以有效地跟踪任何文件集。而且,它是由Linux内核背后的人Linus Torvalds开发的。因此,如果您是随着时间的推移向您的软件中添加功能的开源开发人员,或者正在与多个伙伴合作开发尖端的企业产品,那么Git可能是您工作的理想跟踪系统。与我们一起学习一些基本的git命令,这些命令将大大简化您的开发周期。

git CLI提供了大量的git命令,以使开发人员更轻松地进行软件开发。为了方便读者,我们的编辑人员概述了一些有用的命令。因此,请继续阅读并按照自己的节奏发现它们。

26zq6f2.png!web

1. 配置用户配置文件

您可以使用git config命令配置git配置文件。您至少可以设置的是用户名和电子邮件地址。Git允许用户全局或基于项目配置这些策略。使用以下命令为每个存储库设置用户和电子邮件地址。

linuxidc@ubuntu:~/www.linuxidc.com$ git config user.name "linuxidc" 
linuxidc@ubuntu:~/www.linuxidc.com$ git config user.email [email protected] 

添加–global选项以全局设置这些策略。

linuxidc@ubuntu:~/www.linuxidc.com$ git config --global user.name "linuxidc" 
linuxidc@ubuntu:~/www.linuxidc.com$ git config --global user.email [email protected] 

vmEVFff.png!web

2. 初始化Git仓库

git仓库或简单的repo是您的开源项目的根目录。它包含源文件,对象,头和标签的子目录等。您可以使用以下命令轻松初始化git repo。

linuxidc@ubuntu:~/www.linuxidc.com$ git init 

已初始化空的 Git 仓库于

/home/linuxidc/www.linuxidc.com/.git/ 

vMb6Fbn.png!web

这是您一生中最常用的git命令之一。现在,您可以开始添加源文件,并根据需要进行修改。

3. 添加项目文件

使用git将文件添加到现有项目非常容易。您可以使用git add命令轻松地将所有修改后的文件/目录添加到跟踪系统。快速浏览以下示例,以了解其工作原理。

git add file 
linuxidc@ubuntu:~/www.linuxidc.com$ git add * 

发出git add命令时,它将所有文件从当前工作目录添加到项目索引中。您可以按照第一个示例中的说明指定特定文件。第二个示例将所有PHP文件添加到索引中。Git会将其标记为暂存。

4. 验证添加的文件

您可以使用git status命令验证将在下一次提交期间暂存的文件。它将显示所有新文件或已更改的文件。

linuxidc@ubuntu:~/www.linuxidc.com$ git status 

想要查看详细信息时,请运行上面的命令。它将显示即将提交的所有文件的摘要列表。

67fe2qr.png!web

5. 提交对存储库的更改

提交更改时,git会捕获代码库的快照。这就是git跟踪更改并提供版本控制的方式。您需要为此使用git commit命令。

linuxidc@ubuntu:~/www.linuxidc.com$ git commit 

当您运行上述命令时,git会要求您输入一些信息,例如添加说明。它将调用您在git安装过程中设置的默认Linux编辑器。使用以下命令可避免这种不当行为。

linuxidc@ubuntu:~/www.linuxidc.com$  git commit -m "Linuxidc Commit" 

因此,如果使用-m选项,则可以直接添加描述。

J7zUnm6.png!web

6. 显示日志

只要想查看对存储库所做的更改,就可以查看日志。只需在Linux终端上使用git log命令执行此操作即可。

git log 
git log --file 
linuxidc@ubuntu:~/www.linuxidc.com$ git log 
commit 482b4bebada278b29001338411de7c42743065d5 (HEAD -> master) 
Author: linuxidc <[email protected]> 
Date:  Thu Apr 30 14:21:46 2020 +0800 
    Linuxidc Commit 

aEV3aur.png!web

第一个示例将显示有关git提交的一般信息。如果只想查看特定文件中的更改,请使用第二个命令。您还可以添加更多选项,例如–log-size选项,甚至使用正则表达式进行搜索提交。

提交并显示日志。

7. 验证项目分支

git分支代表您项目中的独立开发线。您可以使用git branch命令非常轻松地检查当前分支。它会显示您正在开发新功能或修改较旧功能的当前活动分支。

linuxidc@ubuntu:~/www.linuxidc.com$ git branch 
* master 

* master输出将使用星号(*)标记当前分支。

RZvINb6.png!web

8. 重置项目分支

您可以轻松地将当前存储库和工作目录重置为已知状态。git reset命令将把HEAD引用调整为特定的提交,并相应地更新索引以匹配该特定的提交。

linuxidc@ubuntu:~/www.linuxidc.com$ git reset 

使用以下命令对您的当前分支执行软重置。

linuxidc@ubuntu:~/www.linuxidc.com$ git reset --soft 

您也可以以类似方式执行硬重置。只需更换-soft与难的选项,如下面的例子演示。

linuxidc@ubuntu:~/www.linuxidc.com$ git reset --hard 

9. 添加一个新分支

添加新分支使您可以独立处理较新的功能。您可以使用git branch命令轻松添加分支。只需添加分支名称,如下所示。

linuxidc@ubuntu:~/www.linuxidc.com$ git branch new-linuxidc 

通过发出git branch命令来验证添加是否成功。它应该显示新创建的分支,称为new-linuxidc。但是,您不能使用相同的分支名称添加多个分支。它将导致致命错误。

7N3eIvv.png!web

10. 在分支之间切换

您可以使用checkout命令非常轻松地在项目的各个分支之间切换。它是您在软件开发期间最常用的git命令之一。快速浏览下一个示例,以了解其工作原理。

linuxidc@ubuntu:~/www.linuxidc.com$ git checkout new-linuxidc 

此命令将通知您分支已成功切换。您也可以使用前面显示的git branch命令来验证这一点。

R7JnQ3V.jpg!web

11. 删除项目分支

成功开发新功能后,您希望它们添加到git master分支中。完成此操作后,您可以完全删除该分支。git命令的-D选项使我们可以很容易地做到这一点。

linuxidc@ubuntu:~/www.linuxidc.com$ git checkout master 

切换到分支 'master'

linuxidc@ubuntu:~/www.linuxidc.com$ git branch -D new-linuxidc 

已删除分支 new-linuxidc(曾为 482b4be)。

c4488c.webp" target="_blank"> 1f2d5af3ecfce4a4ebdda8da0f<span<span<span<i git diff  git diff new-linuxidc master 

第一个示例将显示工作树和索引树之间的更改。第二个示例将显示master分支和new-linuxidc分支之间的更改。

13. 合并两个分支

您可以使用git merge命令轻松合并两个不同的开发分支。它将两个分支合并为一个统一分支。您可以将git merge命令用于多种用途。看下面的例子,看看如何使用它们。git merge fixes new-linuxidc

git merge fixes new-linuxidc 
git merge -s ours obsolete 
git merge --no-commit main 

git merge --no-commit main第一个示例合并两个分支的新功能并进行修复以创建一个分支。第二个示例使用我们的策略将obsol]分支合并到当前开发分支。最后一个示例将分支main合并到当前分支,但禁用自动提交。

14. 还原现有提交

有时,您可能会决定不再需要某些提交。在这种情况下,还原这些提交比完全修改分支更好。git revert命令可以让我们做到这一点。

git revert 482b4bebada278b29001338411de7c42743065d5 
git revert HEAD~3 

第一个示例将还原由提交ID 482b4bebada278b29001338411de7c42743065d5引入的更改。第二个示例使HEAD中的第四个最后提交重复执行,并执行一个新的提交。

15. 隐藏工作目录

您可以将工作目录的当前状态临时保存到某个地方,并在以后需要时返回到该目录。这在git术语中称为隐藏。它只是存储工作目录的状态和索引,以便您可以处理新内容。

git stash 

当陷入混乱情况时,开发人员通常使用此命令。它允许他们存储不整洁的工作流程,并稍后再解决。使用存储列表命令查看存储列表。

git stash list 

16. 克隆仓库

关于开源的最好的事情之一就是您可以像对待他人的代码一样使用他人的代码。Git使使用git clone命令下载现有项目变得容易。看下面的插图,看看它在现实生活中是如何工作的。

git clone <GIT:URL> 
git clone git://example.com/git.git/ test-dir 

这会将所述项目下载到系统的test-dir目录中。

17. 提取新更新

现实生活中的项目一直在发展。假设您在前面从远程仓库中克隆了一个repo。当开发人员将新特性更新到存储库时,您将做什么?将相同的repo一遍又一遍地克隆到本地机器中是不方便的。git pull命令可以避免这种情况。

git pull 

此命令将使用协作者所做的任何新更新来更新项目的本地版本。切记在获取最新更新之前将工作目录更改为项目目录。

18. 推送您的更新

完成更新的处理后,可以通过将其添加到远程存储库中。git push和git commit之间的区别在于,当您提交某些更改时,它们将被添加到本地存储库而不是远程存储库中。

git push 

此命令会将您的更新添加到项目的远程存储库。通常,您将使用推拉与远程开发人员进行协作。因此,完美地掌握它们很重要。

19. 显示远程存储库

git remote命令使我们可以从Linux终端方便地管理一组跟踪的存储库。您可以使用它仅克隆某些选定的分支。

git remote 
git remote --verbose 

第一个示例将显示当前配置的所有远程存储库。添加–verbose标志将向我们显示有关此信息的详细信息。

20. 连接到远程仓库

您可以设置远程仓库,以便将本地仓库连接到远程服务器。这样,您就可以将本地更改直接推送到远程服务器。

$ git remote add origin <服务器> 

面的命令会将“ origin”作为远程名称添加到服务器。您可以通过浏览GitHub存储库的Source子选项卡来发现服务器URL 。

【责任编辑:赵宁宁 TEL:(010)68476606】


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK