使用Git有很多种不同的方法,可以使用命令行,也可以使用GUI工具。就像Shell一般,使用图形界面总归不如命令的感觉好。
在本篇里,我们介绍在使用Git中的一些重要命令。
命令行是可以运行所有Git命令的地方。
概述
你或许会问,Git是什么?我们能用它做什么?
Git是一个快速、可扩展的分布式版本控制系统,具有丰富的命令集合,为用户提供高级操作以及对其内部的完全访问等。
在Git之前,我一直用SVN,在之后,我开始将Git用在软件开发,让团队更轻松的实现合作。
实际上,我们可以通过命令行运行 git help 命令来了解各个Git命令的信息。如下图:
所有的人都可以加入到git存储库中。
Git选项
我们可以通过命令行,开始了解Git选项。这个命令可以在本地环境中,把关于Git的内容全部告诉你。
Git [--version] [--help] [-C <path>][-c name=value] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path][-p | --paginate | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>][--work-tree=<path>][--namespace=<name>]<command>[<args>]
如下实例:
git --version
git version 2.18.0
git --help
每一位程序员都要知道这个选项。它会告诉你关于Gig的所有命令。可以再加一个选项—all 或 -a 参数来格式化打印所有可用之命令。
git -C <path>
显示当前Git所在的工作目录,你需要给一个<path>路径参数。注意该参数的C是大写字母,前缀是一个减号。
git -c <name>=<value>
你可以非常容易的从配置文件中重写新值。<name>是从git config中格式化的名称,而<value>是你要使用的新值。
git --exec-path[=<path>]
该命令帮助你搜索Git的核心程序是否已经安装。其它方法是可以设置GIT_EXEC_PATH环境变量。
git --git-dir=<path>
我们会一直使用该选项。因为我们需要给存储库一个路径。也可以设置GIT_DIR来配置路径。
以上是git手册的一部分内容。在下一段,我们进一步探索git 命令。
Git命令
Git命令可以用来访问Git工作目录,连接远端存储库。可以发送修改,查看有区别的文件,还有其它更多的可能。如果你的项目已经设置,请确认连接到Git。
以下命令和短注释,我们选择一些重要的命令说明。
git config
你可以使用 git config 来配置作者名称,邮件地址,文件格式以及在提交时一些信息设置。
例如:
git config --global user.name ‘duluoyi’
git config --global user.email “[duluoyi@21cto.com]”
git init
使用这个名字可以确认你的git远端存储库,它会在当前运行的目录下创建一个.git目录。运行后将显示类似如下之提示:
Initialized empty Git repository in /path/.git/
你当然可以重新初始化,先rm -rf .git即可。
git clone <path>
该命令将从远端存储库获取一个工作副本,并保存在本地存储库。这个第一个命令告诉Git如何将Git存储库向哪里复制文件。
git clone /path/repository
当然,你可以添加到 original location做为一个远端,如果你有获取和推送的权限。一旦这个项目复制clone完成,我们就可以开始工作了。
其命令格式如下:
git clone [email protected]:user/repository.git
你也可以克隆一个指定的分支:
git clone -b branch_name [email protected]:user/repository.git
git add <file_name>
添加更多的文件在你的工作目录到索引
git commit
当你修改好文件去索引HEAD分支时,可以附加一个 -m 信息。
git commit -m “Comit these changes.”
你也可以将所有修改的文件一起提交。
git commit -a
所有的修改都会提交。
git status
该命令用来显示索引与工作目录的差异。该命令将显示已经修改的文件,以及没有加入跟踪的文件。
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will becommitted)
File_name
nothing added to commit but untracked filespresent (use "git add" to track)
git remote
显示远端存储库的版本
git checkout <branch_name>
你可以切换到一个已经存在的分支或者创建一个新分支并切换之:
git checkout -b <branch_name>
git branch
该命令很简单,用来显示已经存在的分支列表。如果想包含远端分支,可以使用-a 或创建一个新分支(要提供分支名称)
git push
该命令推送所有修改到远端存储库。
git push origin <branch_name>
你也可以从远端存储库删除一个分支。
git push origin:<branch_name>
git diff
显示你当前的工作树和索引与另一个分支的区分,或者磁盘中的两个文件。比如查看两个分支的区别:
git diff <source_branch> <target_branch>
git reset
复位你的索引以及工作目录,恢复最后一次你的提交。
git reset --hard origin/master
git reset --hard将恢复你做的最后一次修改。
使用
git reset --soft 将跳过此次修改
git tag
你可以使用标签去标识一个修改状态,比如一次版本发布。
git tag 1.0.0 <commit_id>
这个命令将标识你的新产品发布。
git log
该命令将列表显示所有当前分支的行为记录。如:
commit134808af7c596be8d92c619f9efb94542874e1e3
Author: devid <duevid@example.com>
Date: Fri Mar 23 14:24:54 2018 +0100
[#1] FirstCommit
转载:21CTO