基本Git命令

git config 在第一次使用 git 或刚安装新的 git 时,此命令可设置身份--Name 和 Eamail 地址。并且每次提交时会使用此信息。

用法:

        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 clone 命令将使用现有的存储库进行复制。git init 和 git clone 之间有一个主要区别。需要在现有存储库上进行复制时,使用 git clone 。git clone 命令首先在内部使用 git init 命令,然后检出所有内容。

用法:

        git clone <your project URL>

git add 命令会把所有的代码文件或修改后的文件添加到存储库中。此命令提供了添加文件和文件夹的不同选项。

用法:

        将单个文件添加到暂存区

        git add your_file_name

        将所有修改过的文件和新文件添加到暂存区

        git add *

git commit 这个命令是必不可少的。如果不能合理利用此命令,则可能会降低项目质量。

git commit 会将更改添加到本地存储库。

用法:

        git commit -m "你提交时的说明信息"

git status 此命令可以方便地查看有多少文件需要得到关注。可以随时运行此命令。此命令可以用来在 git add 和 git commit 之间查看状态。

用法:

        git status

git branch 大多数情况下,git 存储库中总会有多个分支。我们可以使用 git branch 命令有效地管理分支。git 分支有许多不同的选项和开关。

在这里重点介绍如何创建和删除 git 分支。

用法:

        列出所有分支        git branch

        创建新的分支        git branch <branch_name>

        删除分支                git branch -d <branch_name>

git checkout 用于在分支之间进行切换。以下是切换到另一个分支的语法。

用法:

        git checkout <branch_name>

        也可以创建和检出到分支,用法如下

        git checkout -b <your_new_branch_name>

中级Git命令

如果需要与团队合作,与他人共享代码,以下这些命令会非常有用 。另外还有一些类似 git log 命令,这些命令可帮助查看以前的提交历史。

git remote 如果需要与远程仓库链接,必须使用此命令。此命令会将本地存储库连接到远程。

用法:

        git remote add <shortname> <url>

举例:

        git remote add origin https://gitee.com/zhangzhiyuan/vueproject

git push (借助 git remote 命令) 与远程存储库链接之后,就需要将更改推送到存储库。

用法:

        git push -u <short_name> <your_branch_name>

举例:

        git push -u origin feature_branch

git push --set-upstream 在使用 git push 之前,我们应该先设置好 origin 和 upstream。下面是设置 upstream 的命令。

用法:

        git push --set-upstream <short_name> <branch_name>

举例:

        git push --set-upstream origin feature_branch

git fetch 当需要下载其他团队成员的更改时,就得使用 git fetch。

此命令会下载有关提交、引用等所有信息,因此可以在将这些更改应用于本地存储库之前对其进行检查。

用法:

        git fetch

git pull 下载内容(而不是元数据),并立即用最新的内容更新本地存储库。

用法:

        git pull <remote_url>

git stash 临时存储已修改的文件。你可以使用以下 Git 命令处理stash工作。

用法:

        git stash

可以使用以下命令查看所有 stash

        git stash list

如果需要应用 stash 到分支,那就使用 apply

        git stash apply

git log 查看所有之前的提交,并且最近的提交出现在最前面。

用法:

        git log

默认情况下,它将显示当前已检出分支的所有提交,但是你可以强制通过所有选项来查看所有分支的所有提交。

        git log --all

git shortlog 命令会显示来自 git log 命令的摘要。如果只对简短的摘要感兴趣,此命令就非常有用了。

这个命令有助于查看谁处理了什么,因为他对作者及其提交进行了分组。

用法:

        git shortlog

git show 与 git log 相比,此命令将显示有关特定提交的详细信息。

用法:

        git show <your_commit_hash>

git rm 有时需要从代码库中删除文件,在这种情况下,可以使用 git rm 命令。

它可以从索引和工作目录中删除跟踪的文件。

用法:

        git rm <your_file_name>

git merge 可帮助将来自两个分支的更改集成到单个分支中。

用法:

        git merge <branch_name> 

        此命令会将 <branch_name> 合并到当前选择的分支中。

高级Git命令

git rebase 类似于 git merge 命令。它把两个分支集成到一个分支中,但有一个不一样的地方:git rebase 命令将会重写提交记录。

当有多个私有分支合并到单个分支时,应使用 git rebase 命令。它将使得提交历史成为线性的。

用法:

        git rebase <base>

git bisect 命令可以帮助查找糟糕的提交。

用法:

        1、启动 git bisect

                git bisect start

        2、让 git bisect 知道什么是好的提交

                git bisect good a123

        3、让 git bisect 知道什么是糟糕的提交

                git bisect bad z123

        4、通过 git bisect 只要几分钟就可以缩小问题代码的范围。

git cherry-pick  允许从任意分支中选择任意提交并将其应用于其他任意分支。

用法:

        git cherry-pick <commit-hash>

        git cherry-pick 不会修改存储库的历史记录;相反,它会添加到历史记录。

git archive 命令会把多个文件合并为单个文件。就像zip实用程序一样,所以你可以提取存档文件以获取单个文件。

用法:

        git archive --format zip HEAD > archive-HEAD.zip

        它将创建当前修订的 zip 存档。

git pull --rebase 在大多数情况下,当使用 git pull 时,需要重新设置基准(并且不进行合并)。

此时,就可以使用此项。

用法:

        git pull --rebase

        这将帮助保持干净的历史记录。还可以避免多次合并。

git blame 如果需要逐行检查任意文件的内容,则需要使用 git blame 命令。它可以帮助确定是谁对文件进行了更改。

用法:

        git blame <your_file_name>

git tag 在 Git 中,标签很有用,你可以使用它们来管理发布。你可以将 git tag 视为不会改变的分支。尤其是要公开发布的时候,更为重要。

用法:

        git tag -a v1.0.0

git verify-commit 命令将检查 gpg 签名。GPG,GNU Privay Guard,是 sign 文件中使用的工具,包含签名。

用法:

        git verify-commit <commit>

git verify-tag 可以以同样的方式确认标签。

用法:

        git verify-tag <tag>

git diff 大多数情况下,在提交或推送之前,需要比较两个 git 文件或分支。使用此命令。

用法:

        1、将工作目录与本地存储库进行比较:

                git diff HEAD <filename>

        2、比较两个分支:

                git diff <source branch> <target branch>

git citool 是 Git 提交的图形化替代。

用法:

        git citool

git mv 重命名 git 文件,接受两个参数,源文件名和目标文件名。

用法:

        git mv <old-file-name> <new-file-name>

git clean 可以使用 git clean 命令处理未跟踪的文件,可以使用此命令从工作目录中删除所有未跟踪的文件,如果要处理跟踪的文件,则需要使用 git reset 命令。

用法:

        git clean

git help Git 中有许多命令,如果需要其他命令的帮助,可以随时在终端上使用 git help。

用法:

        git help <git-command>

git whatchanged 此命令的作用与 git log 相同,但为原始格式。并且由于历史原因,它也是 git 的一份子。

用法:

        git whatchanged

**************************************************************************************************************

add远程仓库:  git remote add origin git@gitee.com:zhang/vue_shop.git

git push推送到远程仓库:   git push -u origin master 并以master 分支保存

git status 检查项目状态 > git add . 添加所有文件到暂存区 > git commit  –m “描述” 在本地提交 > git push 上传 > git pull 拉取远程代码 > git reset 回退版本 > git checkout 切换分支

git add .         添加当前目录的所有文件到暂存区

git add file1 file2 …  添加指定文件到暂存区

git add dir(目录)     添加指定目录到暂存区,包括子目录

git add -p             添加每个变化前,都会要求确认;对于同一个文件的多处变化,可以实现分次提交

git archive            生成一个可供发布的压缩包

git blame file文件   显示指定文件是什么人在什么时间修改过

git branch          列出分支   没有参数时,会列出在本地的所有分支并显示当前正处于哪一个分支上

git branch -r         列出所有远程分支

git branch -a         列出所有本地分支和远程分支

git branch 新的分支名称       新建分支,但依然停留在当前分支

git branch -d 分支名              删除分支

git branch -dr 远程分支名      删除远程分支

git branch branch commit             新建一个分支,指向指定commit

git branch --track branch remote-branch                新建一个分支,与指定的远程分支建立追踪关系

git branch --set-upstream 分支 远程分支                 建立追踪关系,在现有分支于指定的远程分支之间

git checkout -                  切换到上一个分支

git checkout .                   恢复暂存区的所有文件到工作区

git checkout 分支名         切换到指定分支,并更新工作区

git checkout -b 新分支名称    新建一个分支并切换到该分支

git checkout -b 新分支名称 标签    新建一个分支,指向某个标签

git checkout file       恢复暂存区的指定文件到工作区

git checkout commit file      恢复某个commit的指定文件到暂存区和工作区

git cherry-pick commit                选择一个commit,合并进当前分支

git commit          将暂存区内容添加到仓库中

git commit -a             提交工作区自上次commit之后的变化,直接到仓库区

git commit -v             提交时显示所有diff信息

git commit -m “备注内容”                     提交暂存区到本地仓库中并添加备注 -m提交信息

git commit file1 file2 … -m “备注内容”            提交暂存区的指定文件到仓库区

git commit --amend -m “备注信息”                 使用一次新的commit,替代上一次提交;如果代码没有任何新变化,则用来改写

                                                                        上一次commit的提交信息

git commit --amend file1 file2 …           重做上一次commit,并包括指定文件的新变化

git clone [url] https://gitee.com/kuangstudy/openclass.git下载一个项目和它的整个代码历史

git config -e               编辑git配置文件      针对当前仓库

git config -e --global    编辑git配置文件      针对系统上所有仓库

git config --list           显示当前的git配置信息  --list可简写为 -l

git config --system --list        查看系统config配置信息

git config --global --list         查看当前用户(global全局)配置

git config --global user.name “yourName”          设置提交代码时的用户信息

git config --global user. email “yourEmail”          如果去掉 --global 参数只对当前仓库有效

git diff         显示暂存区和工作区的差异

git diff --cached 文件            显示暂存区和上一个commit的差异

git diff HEAD                         显示工作区与当前分支最新commit之间的差异

git diff first-branch…second-branch            显示两次提交之间的差异

git diff --shortstat “@{0 day ago}”                显示今天你写了多少行代码

git fetch                  从远程获取代码库

git fetch origin dev(dev为远程仓库的分支名)把远程分支拉到本地

git fetch 远程          下载远程仓库的所有变动

git init         初始化 git 仓库(在当前目录新建一个Git代码库)

git init project-name        新建一个目录,将其初始化为Git代码库

git log               查看历史提交记录

git log -p 文件           显示指定文件相关的每一次diff

git log --stat              显示commit历史,以及每次commit发生变更的文件

git log -s 关键字       根据关键词搜索提交历史

git log 标签 HEAD --pretty=format:%s             显示某个commit之后的变动,每个commit占据一行

git log 标签 HEAD --grep feature                      显示某个commit之后的所有变动,其提交说明必须符合搜索条件

git log --follow 文件;git whatchanged 文件                显示某个文件的版本历史,包括文件改

git log --oneline      查看历史纪录的简介版本

git log --graph       查看历史中什么时候出现了分支、合并

git log -5 --pretty --oneline        显示过去5次提交

git log --reverse --oneline         用--reverse参数来逆向显示所有日志

查找指定用户的提交日志可以使用:git log --author

比如说要找linus提交的部分:git log --author=linus --oneline -5

如果要指定日期可以执行:--since 和--before,也可以用--until 和—after

git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges

git mv             移动或重命名工作区文件

git mv file-original file-renamed       改名文件,并且将这个改名放入暂存区

git merge          合并分支

git merge 分支名   合并指定分支到当前分支

git merge login     合并login 里所有分支

git pull                  下载远程代码并合并

git pull remote branch       取回远程仓库某个分支的内容(变化),并与本地分支合并

git push           上传远程代码并合并

git push origin 标签           提交指定标签

git push origin --tags        提交所有标签

git push origin 分支           推送到远程仓库并指定远程分支名称是当前的分支名称保存

git push origin --force       强行推送当前分支到远程仓库,即使有冲突

git push origin --all                推送所有分支到远程仓库

git push origin --delete [branch-name]        删除远程分支

git push origin :refs/tags/标签名                   删除远程标签

git reset          回退版本

git reset file             重置暂存区的指定文件,与上一次commit保持一致,但工作区不变

git reset --hard        重置暂存区与工作区,与上一次commit保持一致

git reset commit      重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变

git reset --hard commit    重置当前分支的HARD为指定commit,同时重置暂存区和工作区,于指定commit一致

git reset --keep commit    重置当前HEAD为指定commit,但保持暂存区和工作区不变

git revert commit       新建一个commit,用来撤销指定commit;后者的所有变化都将被前者抵消,并且应用到当前分支

git reflog                   显示当前分支的最近几次提交

git rm file1 file2 …             删除工作区文件,并且将这次删除放入暂存区

git rm --cached  file           停止追踪指定文件,但该文件会保留在工作区

git remote                 远程仓库操作

git remote -v            显示所有远程仓库

git remote show 远程      显示某个远程仓库的信息

git remote add shortname url    增加一个新的远程仓库,并命名

git stash

git stash pop        暂时将未提交的变化移出,稍后再移入

git status        查看仓库当前的状态,显示有变更的文件

git status 文件名   查看指定文件当前的状态,显示有变更的文件

git show 标签       查看标签信息

git show commit  显示某次提交的元数据和内容变化

git show --name-only commit          显示某次提交发生变化的文件

git show commit:filename                显示某次提交时,某个文件的内容

git shortlog -sn          显示所有提交过的用户,按提交次数排序

git tag           列出所有标签

git tag 标签名    新建一个标签,在当前commit

git tag 标签名 commit    新建一个标签,在指定commit

git tag -d 标签名        删除本地标签

git tag -a v1.0    为项目发布一个 “1.0” 版本,给最新一次提交打上(head)”v1.0”的标签 -a意味 “创建一个带注解的标签”不用 -a也可以执行,但它不会记录这个标签是啥时候打的,谁打的,也不会让你添加个标签的注解。推荐一直创建带注解的标签。如果忘了给某个提交打标签,又将它发布了,可以给它追加标签。

假设发布了提交85fc7e7(上面实例最后一行),但是忘了给它打标签,现在可以:

git tag -a v0.9 85fc7e7

忽 略 文 件

有些时候不想把某些文件纳入版本控制器中,比如数据库文件,临时文件,设计文件等

在主目录下建立“.gitignore”文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号 # 开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号 * 代表任意多个字符,问号 ?代表一个字符,方括号 [ ] 代表可选字符范围,大括号 {string1,string2,…} 代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号 !,表示例外规则,将不被忽略。
  4. 如果名称的最面是一个路径分隔符 / ,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最面是一个路径分隔符 / ,表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

为注释

*txt           忽略所有 .txt 结尾的文件,这样的话上传就不会被选中

!lib.txt 但lib.txt 除外

/temp 仅忽略项目根目录下的TODO文件,不包括其它目录temp

build/        忽略build/ 目录下的所有文件

doc/*.txt         会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

Logo

前往低代码交流专区

更多推荐