快速指南,介绍如何使用git命令以及每个开发人员在日常生活中使用的最高命令。
在本教程中,您将学习可以在日常生活中使用的git命令 。 您将看到带有示例的顶级git命令 。 您无法想象没有使用版本控制工具(例如git,bitbucket或任何工具)的开发人员的生活。
因为这使得维护编程文件和与队友协作变得如此容易和容易。
在IDE eclipse中使用GUI插件或在Intelleji工具中,大多数人都不使用git命令。
但是,如果您知道所有这些方便的命令,您将有信心处理从终端手动解决的冲突。
Git教程
Git命令:让我们看看终端或命令提示符中最常用的命令是什么,例如Windows中的git bash。 至少所有开发人员都应该了解以下内容,并且软件行业中最常使用以下内容。 我们将从头开始一个接一个地讨论。
这是最重要的一个,但在您加入新公司或在办公室购买新笔记本电脑时,仅使用一次。 这只是一项一次性的工作,但是如果您想使用下面的“ git config ”命令随时更改姓名,电子邮件地址等信息,请执行以下操作。
可以在全局,系统或用户级别设置名称,电子邮件值。
示例命令来设置用户名和电子邮件地址。
git config –global <属性名称> <值>
git config –全局用户名“ JavaProgramTo.com”
git config –global user.email“ [email protected]”
$ git config --global user.name "JavaProgramTo.com" $ git config --global user.email "[email protected]" $ git config --global user.email [email protected] $ git config --global user.name JavaProgramTo.com
要查看您的计算机中已设置的所有用户配置,请使用“
git config –list | grep'用户'
git config –list | grep'用户'
[email protected]
user.name = JavaProgramTo.com
“ git init”是将项目转换为git项目。 要查看当前文件夹是否在git下,或者不使用git status命令查看,或者如果根目录中存在“ .git ”文件夹,则为git project。
如果不是git项目,只需在根文件夹中运行“ git init ”命令即可将其转换为git项目。
git初始化
$ pwd/Users/Documents/workspace/git-demo$ git statusfatal: not a git repository (or any of the parent directories): .git$ ls -a. .. file1.txt$ git initInitialized empty Git repository in /Users/Documents/workspace/git-demo/.git/$ ls -a. .. .git file1.txt$ git statusOn branch master
No commits yet
Untracked files:
(use "git add ..." to include in what will be committed)
file1.txt
nothing added to commit but untracked files present (use "git add" to track)
如果您想从GitHub或bitbucket或远程位置克隆任何仓库,请使用“ git clone“仓库位置””
git clone <远程存储位置>
$ git clone https://github.com/JavaProgramTo/CoreJava.git
Cloning into 'CoreJava'...
remote: Enumerating objects: 97, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 97 (delta 14), reused 95 (delta 12), pack-reused 0
Unpacking objects: 100% (97/97), done.
$
您也可以克隆到新文件夹中。 在这里,CoreJava git repo将被克隆到一个新文件夹core-java-tutorials
$ git clone https://github.com/JavaProgramTo/CoreJava.git core-java-tutorials
Cloning into 'core-java-tutorials'...
remote: Enumerating objects: 97, done.
remote: Counting objects: 100% (97/97), done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 97 (delta 14), reused 95 (delta 12), pack-reused 0
Unpacking objects: 100% (97/97), done.
$ls
CoreJava core-java-tutorials file1.txt
如果您对任何命令都不了解。 使用“ git help <命令名称>”可提取语法及其所有选项。
git help <命令名称>
$ git help init
它将显示在新的编辑器中,如下所示,然后按'q'进入终端。
要查看文件列表,将其修改并添加到当前目录的阶段中。 并显示当前分支名称。
git状态
$ git status
On branch master
No commits yet
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
file1.txt
没有添加任何内容提交但存在未跟踪的文件(使用“ git add”进行跟踪)
'git add'命令将新文件或现有的已修改文件添加到git阶段。 从当前目录工作。
执行“ git add”命令后,文件将从未跟踪的文件移至“ 要提交的更改 ”
git添加<文件-1-名称>
$ git添加file1.txt
$ git状态
在分支机构主管
尚无提交
所做更改:
(使用“ git rm –cached <文件>…”取消登台)
新文件:file1.txt
未跟踪的文件:
(使用“ git add <文件>…”包含在将要提交的内容中)
CoreJava /
核心Java教程/
即使您可以通过使用空格分隔文件名来添加多个文件,也可以使用
'*'将所有文件添加到舞台上。
git添加
对于
git添加*
'git commit'命令在阶段区域(“要提交的更改”部分)中提交文件,并为此提交创建一个新的提交ID。
但是这些文件现在在git上不可用。 在此阶段,所有文件都像现在一样在本地计算机上。
git commit -m <提交名称>
$ git commit -m 'first commit'
[master (root-commit) 8dbddf5] first commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 file1.txt
Venkateshs-MacBook-Pro-2:git-demo venkateshn$ git status
On branch master
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
没有添加任何内容提交但存在未跟踪的文件(使用“ git add”进行跟踪)
提交后,使用' git push '命令将您的更改移动到远程存储库中,这意味着从那里创建存储库。
git推
git push origin <分支名称> ->将更改应用于特定分支
git push -all –>将所有分支更改推送到远程git。
$ git push
如果您有其他更改,这些更改是您的队友所做的,并获取最新更改以使用“
git pull '命令。
git pull- >从当前分支中提取
git pull
$ git pull
要查看此仓库下的所有分支,请使用“ git branch”
git分支
$ git分支
*大师 发展
要看到,所有的远程分支都使用' git branch -r '
git branch -r- >查看远程分支
git branch
如果您已经在本地仓库中修改了文件,并且希望将所有更改替换为远程文件,请使用' git checkout <文件名> '
$ git checkout file1.txt
如果您在本地修改了文件,并且不想立即提交,请使用“
git stash '。
现在,修改后的文件将显示在“ git status”命令中。
$ vi file1.txt
$ git status
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: file1.txt
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
no changes added to commit (use "git add" and/or "git commit -a")
$ git stash
Saved working directory and index state WIP on master: 8dbddf5 first commit
$ git status
On branch master
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
nothing added to commit but untracked files present (use "git add" to track)
没有添加任何内容提交但存在未跟踪的文件(使用“ git add”进行跟踪)
再次向git stash添加了一些文件。 “保存”是可选的,默认情况下会保存。
$ git stash保存
要查看git stash中的所有提交,请使用“ git stash list”
$ git stash list
stash@{0}: WIP on master: 8dbddf5 first commit
stash@{1}: WIP on master: 8dbddf5 first commit
要获得从存储到阶段的最新更改,请使用' git stash pop ' 。
$ git stash pop
On branch master
Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)
modified: file1.txt
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
file2.txt
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (9faef149414d5c6ab7047ed493c77a3b444e04e6)
现在,使用命令“ git stash list”查看隐藏中所有提交的列表
$ git stash list
stash@{0}: WIP on master: 8dbddf5 first commit
git branch命令列出该仓库中所有可用的分支。
这将显示所有分支,直到您最后一次执行git pull为止。 之后,它将拉动是否在远程分支上创建了任何新分支,而这些分支无法从本地分支中看到。
$ git branch
develop
* master
要仅查看远程分支,请使用“ git branch -r”,并使用“ git branch -a ”访问所有远程和本地分支。
$ git branch -r
origin/dummy
origin/master
$ git branch -a
develop
* master
remotes/origin/dummy
remotes/origin/master
$ git branch
develop
* master
如果您要将另一个分支合并到当前分支,请使用“
git merge '命令。
进行更改以开发分支,并将开发分支合并到主分支。
$ git status
On branch develop
Changes to be committed:
(use "git reset HEAD ..." to unstage)
modified: file1.txt
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
file2.txt
Venkateshs-MacBook-Pro-2:git-demo venkateshn$ git commit -m 'added line 2'
[develop 17569dd] added line 2
1 file changed, 3 insertions(+)
将develop分支合并到master分支。
git mergedevelop- >将develop分支的更改合并到当前分支。
$ git checkout master
Switched to branch 'master'
$ git merge develop
Updating 8dbddf5..17569dd
Fast-forward
file1.txt | 3 +++
1 file changed, 3 insertions(+)
要查看任何分支或当前分支中的所有提交版本历史记录,请使用
' git log '命令。
$ git log
commit 94c3fcb44b57cc13a3bdadaabe708e1d0e38a16e (HEAD -> master)
Author: JavaProgramTo.com
Date: Sun May 10 22:24:55 2020 +0530
adding file2
commit 17569dd273defd6ef7a4de554f20a966504fa629 (develop)
Author: JavaProgramTo.com
Date: Sun May 10 22:17:12 2020 +0530
added line 2
commit 8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10
Author: JavaProgramTo.com
Date: Sun May 10 21:21:42 2020 +0530
first commit
默认情况下,“ git log ”命令显示当前分支的所有提交,但它提供不同的标志来执行特定的操作集。
要查看特定文件的文件提交,请使用“
git log –关注<文件名> '
查看file1.txt的提交
$ git log --follow file1.txt
commit 17569dd273defd6ef7a4de554f20a966504fa629 (develop)
Author: JavaProgramTo.com
Date: Sun May 10 22:17:12 2020 +0530
added line 2
commit 8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10
Author: JavaProgramTo.com
Date: Sun May 10 21:21:42 2020 +0530
first commit
查看file2.txt的所有提交
$ git log --follow file2.txt
commit 94c3fcb44b57cc13a3bdadaabe708e1d0e38a16e (HEAD -> master)
Author: JavaProgramTo.com
Date: Sun May 10 22:24:55 2020 +0530
adding file2
使用以下命令查看修改后的文件与远程文件之间的区别
' git diff '命令。
$ git diff
diff --git a/pom.xml b/pom.xml
index f47e51e..8702bb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
org.springframework.boot
spring-boot-devtools
现在,将修改后的文件添加到git中。
$ git add pom.xml
$ git diff
$
现在,git diff没有显示差异,但是您仍然可以看到diff wit标志' –staged '。
git diff –暂存
$ git diff --staged
diff --git a/pom.xml b/pom.xml
index f47e51e..8702bb4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
org.springframework.boot
spring-boot-devtools
查看两个分支之间差异的另一种有趣方式。
$ git diff master开发
要从舞台中删除文件,文件应位于本地系统中。
查看有关“ git reset and git rm”命令的深入文章, 以取消暂存文件 。
语法: git reset <文件名>
$ git reset file1.txt
取消暂存并从特定提交中删除所有文件。 但是,此提交中的所有文件将在本地计算机中保留已修改的状态。
git reset <提交ID>
$ git reset 6873c7a6c1135b3a977c9d14404e0fd652f566a8
重置后的未分级更改:
M pom.xml
放弃提交中的所有更改并返回到特定提交。
$ git reset --hard 8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10
HEAD is now at 8dbddf5 first commit
$ ls
CoreJava core-java-tutorials file1.txt
$
重置为第一次提交后,我们在本地文件系统中看不到file2.txt。 因为,如果您使用' hard '标志,那么它将删除文件的所有历史记录。
运行带有' hard '标志的git命令时必须小心。
此命令将从当前本地工作目录以及舞台中删除文件。 一旦提交并推送,文件将从git repo中永久删除。
如果您不使用任何标志,那么只需执行git rm命令即可删除该文件。
$ ls
CoreJava core-java-tutorials file1.txt
$ git rm file1.txt
rm 'file1.txt'
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
deleted: file1.txt
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
$ls
$
'git rm'命令不适用于暂存文件,仅适用于已提交的文件。
现在创建了一个新的file3.txt并添加到git中。 然后尝试删除带有' git rm file3.txt '的file3.txt文件。 这会导致错误,提示使用'-cached'或'-f'标志 。
$ git rm file3.txt
error: the following file has changes staged in the index:
file3.txt
(use --cached to keep the file, or -f to force removal)
$
“ –cached”标志用于从暂存中删除文件并保留更改。
$ git rm --cached file3.txt
rm 'file3.txt'
$ git status
On branch master
Changes to be committed:
Untracked files:
(use "git add ..." to include in what will be committed)
file3.txt
git rm -f file3.txt –刚刚从本地计算机上删除了文件。
$ git add file3.txt
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
deleted: file1.txt
new file: file3.txt
Untracked files:
(use "git add ..." to include in what will be committed)
CoreJava/
core-java-tutorials/
$ git rm -f file3.txt
rm 'file3.txt'
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD ..." to unstage)
Untracked files:
(use "git add ..." to include in what will be committed)
$
此命令用于将标签赋予指定的提交。
git标签
$ git tag 8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10
$ git tag
8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10
'git tag'命令查看分支的所有标签。
“ git show ”命令显示在提交中更改的内容的文件元数据部分。 默认情况下,它显示git log命令的最新提交结果。
$ git show
commit 68c7e111b3995a5104b1651550f29874733f2a96 (HEAD -> master, tag: 8dbddf5a2a5d2c4d14ceec7a4ea74db994b8dd10)
Author: JavaProgramTo.com
Date: Sun May 10 22:51:59 2020 +0530
file one modified
diff --git a/file1.txt b/file1.txt
index e69de29..b806426 100644
--- a/file1.txt
+++ b/file1.txt
@@ -0,0 +1 @@
+adding line 1
修改后的内容以黄色突出显示。
在“ git show”命令中使用标志“ –name-only”。
git show –仅名称
$ git show --name-only c97949d3c04593bdc72478038c4ff76b17de9c8a
commit c97949d3c04593bdc72478038c4ff76b17de9c8a
Author: java-w3schools
Date: Sat May 9 23:36:22 2020 +0530
Spring Boot Data MongoDB: Projections and Aggregations Examples
pom.xml
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/MongoDbSpringBootCurdApplication.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/config/MongoDBConfig.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/controller/projection/AggregationController.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/controller/projection/EmployeeMongoRepoController.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/controller/projection/MongoTemplateProjectionController.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/model/AgeCount.java
src/main/java/com/javaprogramto/springboot/MongoDBSpringBootCURD/repository/EmployeeRepository.java
src/main/resources/application.properties
$
总而言之,我们每天都从git bash或Terminal看到软件开发人员中最常用的git命令 。
如果您知道所有这些命令,那么您可以明智地使用git命令。
如果您对“ Git命令”有任何疑问,请在评论部分发表。 我们将尽快答复。
翻译自: https://www.javacodegeeks.com/2020/05/top-git-commands-with-examples.html