Git是一个分布式版本控制系统。它用于跟踪任何文件中的更改。它旨在在软件开发过程中协调在源代码上运行的程序员之间的工作。在本文中,我将向您展示在Git存储库上执行基本操作的命令。我们将使用Ubuntu服务器作为操作系统。相同的命令可以在任何操作系统上运行,只是安装部分会有所不同。
先决条件
- Ubuntu 20.04
我们会怎样做?
- 初始化本地存储库并对其执行基本操作。
- 克隆现有存储库并在其上执行基本操作。
初始化本地存储库并对其执行基本操作。
在继续之前,请检查您正在使用的操作系统以及该操作系统是否可用。
我已经在Ubuntu 20 0.4 LTS服务器上安装了它。
cat /etc/issue
git --version
如果您使用的操作系统与我的操作系统相同,那么如果您的服务器上没有该操作系统,则可以使用以下命令进行安装。
sudo apt-get install git
现在让我们开始使用Git进行基本操作。
检查当前目录并在其中创建一个新目录。将工作目录更改为您创建的目录。
pwd
mkdir my-first-git-repo
cd my-first-git-repo/
ls -la
至此,我们只有一个目录,其中不包含任何文件,并且是Linux系统中的简单目录。使用以下命令将简单目录转换为Git存储库。
git init
ls -la
现在您可以看到已经创建了一个新的隐藏文件夹,其中包含Git配置。
cat .git/config
初始化Git存储库后,它不包含用户身份。要将用户名和电子邮件ID设置为用户身份,请使用以下命令。此身份附加在Git日志消息中。
git config --list
git config user.name rahul
git config user.email rahul@example.com
git config --list
设置用户身份并列出配置后,您可以看到已经设置了用户名和电子邮件。
您甚至可以使用以下命令检查已设置为用户身份的用户名和电子邮件ID。
git config user.name
git config user.email
上面的命令设置用户身份,该身份仅限于特定存储库。
甚至可以设置将由您计算机上所有存储库使用的用户身份,这称为全局身份。如果设置了全局标识,则在提交消息时,没有本地标识的存储库将使用此全局标识。
如果未设置全局标识,而您尝试列出用户名和电子邮件,则不会获得任何信息。
git config --global user.name
git config --global user.email
但是,一旦设置了用户名和电子邮件ID,然后您检查了身份,便可以看到它被显示。
git config --global user.name rahul
git config --global user.email rahul@example.com
git config --global user.name
git config --global user.email
任何人都可以使用以下命令声明全局身份。
git config --global --unset user.name
git config --global --unset user.email
git config --global user.name
git config --global user.email
检查以下屏幕截图以供参考
现在,您知道可以使用命令来检查本地身份,甚至可以通过读取.git / config文件来检查已设置的内容。
git config user.name
git config user.email
如果阅读.git / config文件的内容,将会看到该文件中已经设置了用户名和电子邮件。这就是使用本地身份的地方。甚至可以通过编辑同一文件来更改身份。
vim .git/config
cat .git/config
git config user.name
git config user.email
为本地存储库设置提交标识后,下一步就是创建文件并将其添加到存储库。
让我们在本地存储库中创建一个空文件。
touch README.md
添加文件后,如果您检查存储库的状态,您将看到Git现在未跟踪该文件。
git status
git branch
在将文件提交到Git之前,您需要先添加它。使用以下命令将文件添加到Git,以便准备提交。
git add README.md
git status
git log
将文件提交到Git存储库时,您需要向其中添加一条消息。
git commit -m "my first commit - added README.md"
现在,在检查日志后,您将看到文件已经提交,并带有我们在提交中指定的消息。
git log
默认情况下,您的提交将添加到master分支中。
git branch
克隆现有存储库并在其上执行基本操作
至此,我们使用了本地系统上的存储库。
现在,我们将看到在现有存储库上执行一些操作。如果在代码托管平台(例如Github)上没有用于版本控制和协作的现有存储库,则首先在Github上创建一个帐户以创建存储库。
您可以在Github上创建一个帐户这里。
在Github上创建帐户后,就该创建一个新的存储库了。要创建存储库,请单击屏幕右上方的“ +”图标,然后单击“新建存储库”选项。
为要创建的存储库命名,并根据需要将其访问级别设置为私有或公共。您甚至可以在创建存储库时添加自述文件。单击“创建存储库”按钮以使用您指定的配置创建存储库。
创建存储库后,下一步就是将其克隆到本地系统上。要获取其URL,请单击“代码”,然后从HTTPS部分复制URL。
返回系统并更改工作目录
pwd
cd ..
pwd
使用以下命令在本地计算机上克隆存储库,您需要指定Git URL。
git clone <your-repository-URL>
cd test-repo/
ls -lt
上面的命令会将您的存储库从Github克隆到本地计算机,现在,如果您检查Git日志,您将看到一条日志消息,其中包含我添加了README.md文件的初始提交。
git log
现在让我们创建一个新文件,将其添加到Git并提交一条消息。
pwd
touch first-file-to-push
git status
git add first-file-to-push
git status
git commit -m "first commit to push to the remote repository"
提交后,系统会要求您设置用户身份
git config --list
git config user.name rahul
git config user.email rahul@example.com
git config --list
git log
设置用户身份后,您可以在我们所做的提交中修复身份。
要修复身份,请执行以下命令。您将获得一个编辑器,并且可以在需要时更改提交。
git commit --amend --reset-author
检查Git日志后,您将看到该日志具有您设置的身份和已修复的提交。
git log
git status
您已经准备好将本地更改推送到远程存储库。以下命令将更改推送到存储库中的Github。
git push
现在,您可以在远程存储库中找到您的更改。转到存储库,您可以找到提交和添加的文件。
有时您可能需要将特定文件排除在添加到存储库之外。
pwd
ls -la
您可以创建一个.gitignore文件,并添加Git忽略的文件模式。
touch .gitignore
vim .gitignore
在这里,我添加了“ * .txt”,它将忽略所有以“ .txt”结尾的文件。
cat .gitignore
将模式添加到.gitignore文件并在存储库中创建该模式的文件后,Git将忽略该文件。
由于我们已经添加了* .txt,现在如果我们尝试创建一个以.txt结尾的文件,那么Git将在“ git add”操作中忽略该文件。
touch ignore-this-file.txt
git status
Git不会忽略与模式不匹配的文件
touch dont-ignore-this-file.doc
git status
然后,您可以将所有文件添加到存储库中,并通过一条消息提交它们。您会注意到,将不会添加已被忽略的文件。
git add .
git status
git commit -m "added .gitignore and a sample doc file"
git status
添加文件并提交消息后,即可将其推送到远程存储库。
git push
如果您想从存储库中删除文件,可以使用“ git rm”命令。
pwd
ls -lt
git status
git rm dont-ignore-this-file.doc
git status
ls -la
删除文件后,您可以提交更改并将其推送到存储库。
git commit -m "git removed dont-ignore-this-file.doc "
git status
git push
结论
在本文中,我们在本地系统上创建了一个目录,并将其初始化为Git存储库。我们在此存储库上执行了git add和git commit的基本操作。我们还在Github上创建了一个存储库,并将其克隆到本地服务器上,并执行了git add,git commit,git push,git rm之类的基本操作。我们还看到了Git可以忽略具有特定模式的文件。
转载自:https://www.howtoforge.com/git-basics/