前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用Git命令和操作

常用Git命令和操作

作者头像
张子阳
发布2018-09-30 09:53:25
6910
发布2018-09-30 09:53:25
举报

常用Git命令和操作

2018-3-27 作者: 张子阳 分类: 其他

这篇文章记录了本地单机使用Git时,经常用到的一些Git命令,以便查阅和参考。

下载、安装、配置

下载Git

https://git-scm.com/

下载并安装完成后,进入到项目文件夹,按右键,会出现Git的两个菜单:

选择Git Bash进入命令行界面,即可执行本篇文章后面的操作。

配置Git

#列出当前的配置
git config --list

# 设置Git用户名
git config --global user.name "名字"

# 设置Git邮箱
git config --global user.email "<your-email-address>"

# 确保 Git 输出内容带有颜色标记
git config --global color.ui auto

配置编辑器

编辑器用于在commit时填写说明。

#Atom Editor 设置
git config --global core.editor "atom --wait"

#Sublime Text 设置
git config --global core.editor "C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"

#VSCode 设置
git config --global core.editor "code --wait"

创建Repository仓库

创建新仓库

git init

用于在当前文件夹下创建一个新的空仓库,位于.git隐藏文件夹中。

克隆现有仓库

git clone [url仓库地址] [仓库名称,可以不填,默认与现有仓库名称相同]

默认地将创建一个与被克隆的仓库名称相同的目录。

查看当前仓库的状态

git status

查看仓库历史记录

git log命令

git log

显示当前仓库的变更状态。有时候log会包含大量的信息,可以滚屏显示:

向下滚动

  • j 或 ↓ 一次向下移动一行
  • d 按照一半的屏幕幅面移动
  • f 按照整个屏幕幅面移动

向上滚动

  • k 或 ↑ 一次向上移动一行
  • u 按照一半的屏幕幅面移动
  • b 按照整个屏幕幅面移动
  • 按下 q 可以退出日志(返回普通的命令提示符)

默认情况下,将会显示每个commit的:SHA、作者、日期、注释。

简化git log的显示

git log --oneline

在同一行中,并只显示SHA和注释。

查看具体修改了哪些文件

git log --stat
  • 显示被修改的文件
  • 显示添加/删除的行数
  • 显示一个摘要,其中包含修改/删除的总文件数和总行数

查看文件修改的内容

git log --patch
git log -p

使用此命令将会显示文件修改,同时会显示大量信息。

查看指定commit修改的文件内容

有两个命令都可以实现这个操作。

git log -p [SHA前7位]
git show [SHA前7位]
#git log -p fsa51d

向仓库提交Commit

git add命令

用于将文件从工作目录(Working Directory)提交到暂存区(Staging Index)。

# 加入指定文件
git add [filename1] [filename2]
# 加入所有文件
git add .

git commit命令

用于将暂存区中的文件提交到库中。

直接使用git commit命令,会弹出git config中配置的编辑器,需要写入commit的注释。

使用 git commit -m "注释内容" 则不会弹出编辑器,一步完成,更快捷一些。

git diff命令

git diff 显示你已经保存,但是尚未移交至暂存区(当然也没有commit) 的更改。

忽略文件

如果想将目录下的某些文件忽略掉,不提交到库中,可以创建.gitignore文件,然后将文件名写入。

.gitignore文件支持通配符:

  • # - 将行标记为注释
  • * - 与 0 个或多个字符匹配
  • ? - 与 1 个字符匹配
  • [abc] - 与 a、b 或 c 匹配

标签、分支和合并

git tag命令

# 显示当前的所有标签
git tag
# 创建带注释的标签
git tag -a [version]

选项-a表示创建一个带注释的标签,它通常包含如下信息:

  • 标签创建者
  • 标签创建日期
  • 标签消息

建议使用此种方式。如果不提供选项-a,即 git tag [version],则会创建一个轻量级的标签。

# 删除标签
git tag -d [version]

#向之前的某次提交添加标签
git tag -a [version] [a87984] 

git branch命令

显示分支

注意上图,有一个head指针,head指针标明了当前工作目录所在的分支,也叫活跃分支。

# 查看现在的所有分支
git branch

假设有两条分支branch1、branch2,则结果可能如下所示:

  branch1
* master
  branch2

注意*号表示当前head指针所在的分支。

创建新分支

git branch [branchname]

创建新的分支后,活跃指针依然会位于当前分支,而不会位于新分支。

如果想要切换到新的分支,则需要使用git checkout命令:

git checkout [branchname]

如果要在创建新分支后,立即切换到新分支,可以加入-b选项:

git checkout -b [newbranch]

如果想使新分支的起点位置与basebranch一致,可以使用下面的命令:

git checkout -b [newbranch] [basebranch]

git log默认显示当前所在分支的日志,如果想要显示所有分支的日志,可以使用下面的命令:

git log --oneline --graph --all 

删除分支

git branch -d [branchname]
  1. 不能删除当前分支,需要先checkout到其他分支后才能删除该分支。
  2. 如果分支上有其他分支都不包含的commit(分支从未合并过),则也不能删除。 因此该命令是安全的。

如果要强制删除某一分支(会丢失未合并的commit),使用大写的D选项。

合并分支

分支合并:将其他分支合并到当前(检出的)分支上。我们不是将两个分支合并到一个新的分支上。也不是将当前分支合并到其他分支上。

git merge [branchname]

合并冲突

合并时可能出现冲突,即两个分支修改了同一位置,此时,编辑冲突的文件,然后再重新合并。

撤销更改

更改最后一次commit

git commit --amend

这里分为了两种情况:

1、如果你的工作目录没有内容(也就是仓库中没有任何未 commit 的更改),那么运行 git commit --amend 将使你能够重新编辑 commit 消息。代码编辑器将打开,并显示原始 commit 消息。只需要重新编写注释即可。

2、如果你刚commit之后,又发现了一个相同的问题要修改,此时虽然可以连续commit,但是commit的说明可能都是一样的,它们本身应当属于同一个commit,而不是多个。此时,可以使用这个命令,它将会将多次commit合为同一个commit(相当于修改最后一次commit)。

还原commit

还原会执行和commit完全相反的操作。它会撤销目标commit所做的更改,并且创建一个新的commit记录这一更改。

git revert [commit-sha]

重置commit

假设有一个文件修改后提交到了暂存区,但是还没有commit,则可以使用下面的命令还进行还原:

# 将文件撤出暂存区
git reset [filename]

# 还原文件(覆盖当前修改)
git checkout [filename]

引用之前的某次commit

可以使用HEAD^和HEAD~来引用之前的某次commit


引用父级Commit:
HEAD^ 
HEAD~
祖父Commit
HEAD^^
HEAD~2    

还有一个需要特别注意的引用,^2。当commit位于两个分支合后的位置时,^引用第一个父(运行git merge时所处的分支),而^2引用第二个父,也就是被合并的分支。

git reset 用来清除commmit,根据选项的不同,清除后的commit有三个去处:

  • --mix 将丢弃的commit放入工作目录
  • --soft 将丢弃的commit放入暂存区
  • --hard 彻底丢弃

假设刚刚合并完一个分支,则下面的命令可以撤销合并分支:

git reset --hard HEAD^

简单介绍到这里了,还需要多实践,多练习才能够更好的掌握,但是应付大多数情况应该没有什么问题了。

感谢阅读,希望这篇文章能给你带来帮助!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-3-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用Git命令和操作
    • 下载、安装、配置
      • 下载Git
      • 配置Git
      • 配置编辑器
    • 创建Repository仓库
      • 创建新仓库
      • 克隆现有仓库
      • 查看当前仓库的状态
    • 查看仓库历史记录
      • git log命令
    • 简化git log的显示
      • 查看具体修改了哪些文件
      • 查看文件修改的内容
      • 查看指定commit修改的文件内容
    • 向仓库提交Commit
      • git add命令
      • git commit命令
      • git diff命令
      • 忽略文件
    • 标签、分支和合并
      • git tag命令
      • git branch命令
      • 合并分支
    • 撤销更改
      • 更改最后一次commit
      • 还原commit
      • 重置commit
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档