本文已参与「掘力星计划」,赢取创作大礼包,挑战创作激励金。
前言
不管你是新手小白还是有经验的开发人员,不管是前端还是后端,只要你和团队开发中的一员,则必须要做代码版本控制。而Git则是一款优秀的代码版本控制工具,要充分发挥 Git 的潜力,需要了解 Git 命令,本期内容将为大家介绍一些最有用的 Git 命令。
为了更加清晰的学习,我将Git命令分为三个级别:基本、中级、高级。
基本Git命令
这部分主要介绍一些基本的Git命令,掌握基本命令是学习中高级命令的基础。
Git config
Git config 命令非常有用。特别是当你第一次使用 Git 时,或者你有一个新的 Git 安装。
此命令将设置你的身份信息:姓名和电子邮件地址。这些信息将用于每次提交。
用法
$ git config --global user.name "Your name"
$ git config --global user.email "Your email"
git version
顾名思义,这个命令是检查你使用的是哪个版本的 Git。
用法
$ git version
git init
这是你用于在 Git 中启动新项目的第一个命令。此命令将创建一个空白的新仓库,然后你可以将源代码存储在此仓库中。
用法
$ git init
也可以在 git init 命令中指定仓库名称。
$ git init <your repository name>
git clone
git clone 命令将使用现有的仓库复制。git init 和 git clone 之间有一个主要区别。
当需要在现有存储库上制作副本时,需要使用 Git clone。
git clone 命令在内部首先使用 git init 命令,然后检查其所有内容。
用法
$ git clone <your project URL>
git add
git add 命令会将所有新代码文件或修改过的文件添加到仓库中。此命令提供了添加文件和文件夹的不同选项。
用法
它将向您的暂存区添加一个文件
$ git add your_file_name
将所有修改过的和新的文件添加到暂存区
$ git add
git commit
git commit命令会将你的更改添加到本地仓库。
用法
$ git commit -m “your commit message”
git status
这个 git 命令可以方便地查看有多少文件被操作了,可以随时运行此命令。 可以在 git add和 git commit之间使用它来查看状态。
用法
$ git status
git branch
大多数情况下,git仓库中有多个分支。分支就是一条独立的代码开发线。 使用 git branch 命令,可以有效地管理分支。
git branch有许多不同的选项, 为了简单起见,这里我将重点介绍如何创建和删除 Git 分支。
用法
列出所有分支:
$ git branch
创建一个新分支:
$ git branch <branch_name>
删除分支:
$ git branch -d <branch_name>
git checkout
这个命令用于在git分支上切换,是一个强大的命令。
用法
$ git checkout <branch_name>
此外,也可以一次创建并切换到一个分支。
$ git checkout -b <your_new_branch_name>
中级命令
接下来开始介绍中级命令,如果你需要与团队进行协作、与他人分享代码,这些命令将会非常有用。此外还有像git log这样的命令可以帮助你查看以前的提交历史记录。
git remote
如果你需要与远程连接,则必须要用到git remote命令。此命令会将你的本地仓库和远程仓库连接。
用法
$ git remote add <shortname> <url>
例如:
$ git remote add origin https://github.com/heiz123/_git/DemoProject
git push
在通过git remote连接到远程仓库后,通过git push命令就可以将你的更改记录推送到远程仓库。
用法
$ git push -u <short_name> <your_branch_name>
在使用git push 之前,您应该设置 origin 和 upstream。
$ git push --set-upstream <short_name> <branch_name>
git fetch
当你需要下载别人提交的代码时,需要使用git fetch。这个命令将下载所有的提交,引用信息等。
用法
$ git fetch
git pull
git pull命令会从远程仓库下载最新的内容更新到本地仓库。
用法
$ git pull <remote_url>
git stash
这个命令用于临时存储修改后的文件。
用法
$ git stash
可以通过下面的命令查看所有的临时存储记录
$ git stash list
如果你想应用某个临时存储,则可以使用以下命令,不会从存储记录中删除
$ git stash apply
而下面的命令则会在应用存储的同时,将存储记录删除。
$ git stash pop
git log
通过git log可以看到所有之前的提交记录,最近提交的记录会显示在最前面。
用法
$ git log
默认情况下,它会显示当前分支的所有提交,但可以使用--all选项强制它查看所有分支的所有提交。
$ git log --all
git shortlog
此显示git log 命令的摘要。如果只对简短摘要感兴趣,则此命令很有用。
此命令有助于查看谁在做什么,可以对作者进行分组。
用法
$ git shortlog
git show
与git log相比,git show命令将显示特定提交的详细信息。
用法
$ git show <your_commit_hash>
git rm
有时需要从代码库中删除文件,在这种情况下,可以使用git rm命令。
它可以从索引和工作目录中删除跟踪的文件。
用法
$ git rm <your_file_name>
git merge
git merge可以帮助你将两个分支的更改合并到一个分支中。
用法
$ git merge <branch_name>
这个命令将合并<branch_name>到当前选择的分支。
高级命令
终于到高级命令了,如果能熟练使用这些命令能让你在代码版本管理上更加轻松。
git rebase
git rebase类似于git merge命令,它将两个分支合并为一个分支,区别是git rebase命令会重写提交历史。
当你有多个私有分支合并为单个分支时,你应该使用git rebase命令。
用法
$ git rebase <base>
git bisect
git bisect命令可以帮助我们快速的找到错误的提交记录。
用法
$ git bisect start
让git bisect知道这是一个好的提交
$ git bisect good a123
让git bisect知道这是一个坏的提交
$ git bisect bad z123
使用git bisect可以让你很快速的定位了错误代码是在那一次提交中产生的。
git cherry-pick
git cherry-pick可以理解为挑拣提交,如果我们想从其他分支上合并某一次提交,但是又不想合并整个分支时,可以使用git cherry-pick。
用法
$ git cherry-pick <commit-hash>
git archive
git archive命令通常用于打包,可以将多个文件合并成一个文件,它就像一个zip程序。
用法
$ git archive --format zip HEAD > archive-HEAD.zip
这个命令将会将当前版本的文件打包成一个zip文件。
git archive --format tar.gz --output "./output.tar.gz" master
这个命令将会把master分支打包为output.tar.gz
git pull --rebase
在大多数情况下,当您使用git pull时,您需要执行rebase(而不是merge)。
用法
git pull --rebase
这将帮助你保持历史提交记录的连续性。
git blame
如果你需要逐行检查任何文件的内容,可以使用git blame,它可以帮助你确定都有谁对文件进行了更改。
用法
git blame <your_file_name>
git tag
在Git中,tag很有帮助,可以使用它来管理发布。你可以把Git的tag想象成一个不会改变的分支。git tag表示对当前仓库打一个标。
用法
$ git tag -a v1.0.0
git verify-commit
git verify-commit命令将检查gpg签名。GPG或“GNU隐私保护”是在签名文件中使用的工具,包含了他们的签名。
用法
$ git verify-commit <commit>
git verify-tag
同理,检查tag的gpg签名。
用法
$ git verify-tag <tag>
git diff
大多数情况下,在commit或push之前,需要比较两个git文件或分支。通过git diff可以完成。
用法
将工作目录与本地仓库进行比较:
$ git diff HEAD <filename>
比较两个分支:
$ git diff <source branch> <target branch>
git citool
git citool是git commit的图形替代工具。
用法
$ git citool
git mv
重命名一个git文件。需要两个参数,一个表示原文件名称,一个表示新文件名称。
用法
$ git mv <old-file-name> <new-file-name>
git clean
可以使用git clean命令来删除工作目录中未被traced,未被管理过的文件。比如你新写的代码文件,未被add或commit,使用git clean命令会被清除。
用法
$ git clean
清除之后没有办法找回,建议慎用。
git help
git中有许多命令,如果需要任何命令的帮助帮助信息,您可以随时从终端使用git help。
用法
$ git help <git_command>
最后
git中有很多的命令,要想熟练掌握一定要多加练习。建议收藏本文,时不时拿出来练练。如果对你有所帮助,点个赞吧~