git

 git 中的概念

工作区

暂存区

分支

git-stage

git-stage-after-commit

 

git 中 HEAD 指向分支, 来确定当前要提交到哪一条分支上, 分支指向提交点, 来确定提交到哪里.

 

ssh 连接 github

ssh-keygen -t rsa -C "youremail@example.com"

生成公钥与私钥, 将公钥添加到 github 中

 

git config --global user.name "name"
git config --global user.email "email"

 初始化 git 仓库

git init

添加文件到暂存区中

git add

一次可添加多个 文件到暂存区中, 如 git add file.txt another.txt

-A / --all / --no-ignore-removal 将工作区中所有的文件添加到暂存区

-n 试运行, 但不真正执行命令

 

提交文件到分支上

使用 -m 可以添加提交时的信息, 如 git commit -m <msg>

git commit -- <pathspec>... 可以指定文件进行提交

 

git status 查看仓库的状态

 

git diff 查看工作区与暂存区的不同处

git diff <commit> -- <path>... 比较的是分支与工作区中的差异

git diff --cached 比较的是暂存区与分支中的差异

 

git log 查看到当前版本的日志

git log --preety=oneline 如果要将每次提交的信息显示为一行

git log --graph 用图表的形式显示日志

git log --abbrev-commit 提交的版本号缩短

 

git rm <path> 删除文件并把删除操作提交到暂存区

git rm --cached <path> 取消对文件的追踪

 

 

回退版本

回退到上一个版本使用 git reset --hard HEAD^

回退到上上个版本使用 git reset --hard HEAD^^

回退100个版本使用 git reset --hard HEAD~100

回退到指定版本 git reset --hard 版本号

将暂存区中的文件改为分支上的文件 git reset HEAD <pathspec>

 

查看操作日志

git reflog

 

checkout 指令

git checkout -- <pathspec> 将工作区的文件恢复到暂存区中文件

git checkout -b <branch> 创建并切换分支

git checkout <branch> 切换分支

 

将本地仓库的内容推送到 github 上

git remote add origin git@github.com:MICOOON/learngit.git

git push -u origin master

 

git branch 查看分支

git branch <branch> 创建分支

git branch -d <branch> 删除分支, 但不能删除未被合并的分支

git branch -D <branch> 强行删除分支, 可以删除未被合并的分支

git branch --set-upstream-to=origin/<branch> <branch> 将远程库分支与本地库分支进行关联

 

git merge <branch> 合并分支

git merge --no-ff <branch> 合并分支, 这种合并方式可以在分支历史上看到分支信息

 

git switch -c <branch> 创建并切换分支

git switch <branch> 切换分支

 

git stash 保存工作区和暂存区的改变

git stash list 查询被保存的工作区和暂存区的改变

git stash apply 恢复工作区和暂存区的改变

git stash drop 删除工作区和暂存区的改变

git stash pop 恢复并删除工作区和暂存区的改变

 

git cherry-pick 应用已经被提交的改变

 

git remote 查看远程库信息

git remote -v 查看远程库详细信息

 

git push 将本地库的修改推送到远程库

git pull 将远程库的修改拉取到本地库

 

git tag 列出所有标签

git tag <tagname> 为HEAD commit 添加标签

git tag -a <tagname> -m <message> 为标签添加信息

git tag <commit> 制定commit添加标签

git tag -d <tagname> 删除一个标签

git show <tagname> 显示标签信息

 

git push origin <tagname> 推送一个tag到远程库

git push origin --tags 将本地库中的所有tag推送到远程库

删除远程库中标签, 先将本地库中的标签删除, 再删除远程库中的标签, 如下:

git tag -d <tagname>

git push origin :refs/tags/<tagname>

 

如果在提交时要忽略掉某些文件, 可以在仓库中添加一个 .gitignore 文件.

git check-ignore -v <filename> 可以查看这个文件是否被忽略和为什么被忽略

 

给命令配置别名

git config alias.<alias> <command> 给命令取一个别名, 此配置对当前仓库有效, 可以在.git/config文件中查看

git config --global alias.<alias> <command> 给命令取一个别名, 此配置对当前用户有效, 可以在${user.home}/gitconfig中查看

 

克隆仓库

git clone <repo>

 

git clean 从工作区移除未追踪的文件

-d 为了避免删除太多文件, git 不会递归地进行删除文件夹. 如果指定了-d, git就会进行递归删除文件夹.

-i 交互式的进行删除文件.

-n 不会移除任何东西, 只是展示命令将会做什么.

 

git 命令详解

git [--version] [--help] [-C <path>] [-c <name>=<value>]
    [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
    [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]
    [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
    [--super-prefix=<path>]
    <command> [<args>]

--version: 获取 git 的版本信息.

--help: 获取命令的详细信息.

-C <path>: 指定 git 命令运行的目录, 有多个-C指定的时候, 后一个-C指定的目录都是基于前一个-C指定的目录的相对路径, 比如在我的D盘下有个work文件夹, 文件夹中有个被git管理的项目叫hello, 此时可以在D盘运行git -C work -C hello status, 查看项目的情况.

-c <name>=<value>: 给定的值将会覆盖git配置文件中的值, =可以忽略不写, 例如 git -c foo.bar, 它会被解析为将foo.bar的值设置为true; 写了=, 没有写value的情况下, git -c foo.bar=, 会被解析为将foo.bar的值设置为false.

--exec-path[=<path>]: 这个路径指的是git的可执行程序的路径, 通常会将它设置为环境变量GIT_EXEC_PATH, 如果没有指定path, 那么它就会打印当前设置的路径并推出命令. 这个命令用来查看当前git的可执行程序的安装位置是一个不错的选择.

--html-path: 这个命令会打印出git的html-doc文档的路径.

--man-path: 打印出man的路径, 但是打印出来了我就去这个路径下找, 没有找到, 版本问题?

--info-path: 打印出info文档的位置, 又在打印出来的路径下找, 又没找到.

-p|--paginate: 对git命令所输出的内容进行分页, 你可以通过上下箭头的按键去浏览输出的信息, 也可以按q退出.

-P|--no-pager: 直接输出git命令执行后的所有内容. 可以通过git -p log和git -P log来比较一下这个两个option的不同之处, 但是log命令输出的内容一定要长, 不然比较不出来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值