github git 命令
通过为GitHub上的项目做出贡献,许多人开始参与开源软件开发。 他们中的许多人使用GitHub的图形用户界面(GUI),特别是那些命令行界面(CLI)的新用户。 但是,如果您更喜欢在命令行上工作怎么办?
hub ,这是一个命令行工具,通过添加GitHub特定的功能来扩展Git,以使其更易于熟悉Git命令。 因此,如果您厌倦了点击式GUI,但是想要获得有关Git有时令人困惑的语法的帮助,那么Hub是适合您的工具。在进一步阅读之前,最好先回顾一下Git术语 。
集线器的使用取决于Git,因此首先,确认我们已安装它:
git --version
您的Git版本必须为1.7.3或更高。 不用担心它是否丢失; 您可以使用Homebrew ,开源软件包管理器或发行版的内置软件包管理器(dnf,apt等)快速安装它。 我喜欢Homebrew,所以我们会坚持下去。 Homebrew在Linux上以前被称为Linuxbrew,但现在使用的名称与macOS版本相同。 它可以安装在您的主目录中,这意味着您不需要sudo权限即可安装应用程序。 如果您喜欢其他安装方法,请参阅Git文档 。
要在Fedora上安装Homebrew的命令行实用工具brew ,请执行以下操作:
$ / bin / bash -c " $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh) "
由于我们没有使用sudo ,因此安装脚本会将Homebrew安装到〜/ .linuxbrew 。 要了解有关其工作原理的更多信息,请参阅文档 。
接下来,让我们使用brew安装hub 。
$ brew install hub
接下来,通过检查其版本来验证集线器是否正确安装:
$ hub
--version
git version 2.25.0
hub version 2.14.1
输出显示集线器和Git的版本。 瞧! 您已成功安装集线器。
使用将在GitHub上托管的新存储库来旋转Hub。 导航到要初始化Git的任何文件夹:
$
cd Documents
$
mkdir Test;
cd Test
/
$
git init
Initialized empty Git repository
in
/ Users
/ SudeshnaSur
/ Test
/ .git
/
将任何文件放在其中。 Git只看到已更改的文件,因此可以使用echo向其添加一些文本:
$ echo "Hello" > test.txt
检查git状态并添加:
$
git status
On branch master
No commits yet
Untracked files:
test.txt
nothing added to commit but untracked files present
$
git add .
通过使用git add ,我们已暂存更改,但尚未提交更改。 在此之前,我们需要一个帐户。 如果您还没有一个,请使用此分步指南创建一个GitHub帐户。 接下来,我们需要配置本地版本的Git以使用该帐户的用户名和电子邮件。 该信息将出现在您添加到任何存储库的每条提交消息中(因为您将其设置为全局):
值得注意的是,您可以使用此功能将电子邮件设为不公开。 无论哪种方式,都将您的电子邮件设置为GitHub电子邮件地址。
现在,我们可以创建将分配给我们用户名的提交。 让我们检查一下现有的更改:
$
git commit
-m
'Adding a test file'
[ master
( root-commit
) 07035c94e038
] Adding a
test
file
1
file changed,
1 insertion
( +
)
create mode
100644 test.txt
$
git status
On branch master
nothing to commit, working
tree clean
到目前为止,一切都与使用git相同。 这是有趣的地方。
现在,如果您输入hub create ,它将在GitHub上创建一个与当前目录同名的新存储库:
$ hub create
Updating origin
https:
// github.com
/ SudeshnaSur
/ Test
使用中心甚至将您的存储库与远程镜像链接:
$
git remote
-v
origin
git
@ github.com:SudeshnaSur
/ Test.git
( fetch
)
origin
git
@ github.com:SudeshnaSur
/ Test.git
( push
)
您还可以使用集线器进行克隆和派生,而无需点击进入GitHub GUI。 我很高兴地看到集线器可以自动识别我们要定位的存储库,只要它具有名称空间,斜杠和存储库名称即可。 因此,如果我们要克隆集线器本身的源代码(可从https://github.com/github/hub获得) ,则只需编写:
$ hub clone github
/ hub
Cloning into
'hub' ...
remote: Enumerating objects:
26 , done.
remote: Counting objects:
100
%
(
26
/
26
) , done.
remote: Compressing objects:
100
%
(
22
/
22
) , done.
remote: Total
19712
( delta
7
) , reused
13
( delta
4
) , pack-reused
19686
Receiving objects:
100
%
(
19712
/
19712
) ,
6.76 MiB
|
7.25 MiB
/ s, done.
Resolving deltas:
100
%
(
12912
/
12912
) , done.
现在,我可以对存储库的副本进行常规更改。 我将创建一个名为topic的分支,签出该分支,然后进行较小的更改并提交(这些都是标准的Git命令):
$
cd hub
$
git checkout
-b topic
Switched to a new branch
'topic'
$
echo “Hey”
> test2.txt
$
git add .
$
git commit
-m ‘Adding
test
2 ’
[ master cbb6fde5805a
] Adding
test
2
1
file changed,
1 insertion
( +
)
create mode
100644 test2.txt
这个克隆当前是github / hub ,我没有写权限。 但是我可以轻松地分叉存储库并将更改推送到存储库:
$ hub fork –remote-name origin
输出报告您的帐户正在分叉原始存储库及其所有分支。 请注意,如果您已经有一个名为“ origin”的远程站点,则集线器将默认为新的远程站点提供与您的用户名相同的名称(如果此术语令人困惑, 请在远程站点和fork上阅读此复习资料 )。 接下来,让我们将分支topic推到我的叉子上:
$ git push origin topic
现在,我可以直接在命令行中输入以下内容来打开拉取请求(PR):
$ hub pull-request
这将打开一个文本编辑器,以便我可以添加PR消息,然后可以从那里管理PR。 我什至可以使用hub pr list命令从命令行管理其他 PR。
故事还不止于此。 集线器还提供许多其他功能:
$ hub ci-status
$ hub browse github / quickstart
$ hub sync
$ hub issue --assignee User_Name
$ hub issue
--limit
20
[ lists only
20 issues
]
$ hub browse --issues
$ hub pr checkout 123
$ hub issue update 123 --state closed
$ hub issue transfer 123 ANOTHER-REPO
$ hub-delete github / wiki-links
在命令行中,Hub既有用又易于使用。 如果您正在从GUI过渡到命令行,并且希望使体验更加直观,请尝试使用hub 。
翻译自: https://opensource.com/article/20/3/github-hub
github git 命令