乐趣区

关于git:一学就会的git

一学就会的 git 命令


导读


应用 git 已不知好几年,最近想着把罕用的一些 git 命令做个总结,本文次要写的是 git 罕用的命令。

浏览三连:点赞(????)、关注(????)、珍藏(????)。
本文 github (一学就会的 Git 命令操作) 已上传,更多往期文章已分类整理。

几个罕用的命令


mkdir folder_name  // 创立文件夹 [folder_name: 文件夹名称, 举个栗子:git-demo]
cd  folder_name    // 进入文件夹
touch file_name    // 创立一个文件 [file_name: 文件名称,举个栗子:index.js]
vim file_name      // 编辑一个文件 [举个栗子:vim index.js]
rm -rf file_name   // 删除文件或者文件夹 [rm -rf file_name]
ls       // 显示工作目录
clear    // 革除屏幕

获取 git 仓库


  1. 第一种形式,将本地我的项目转换成 git 仓库, 生成一个.git 文件;
mkdir git-demo // 创立一个文件
cd git-demo
git init  // 创立一个名为 .git 的子目录
  1. 第二种形式,拉取 (克隆) 近程已存在的 git 仓库;
git clone <url>  // url 仓库地址
git clone https://github.com/FishStudy520/git-demo.git

git config (配置用户信息)


配置用户信息(用户名和邮箱);

git config user.name 'your name'     // 配置用户名
git config user.email  'your email'  // 配置用户邮箱

查看配置信息 (显示配置信息);

git config --list 

全局配置用户只须要加 --global

git config --global user.name 'your name'  // 全局配置用户名

git help (查看文档)


查看常见的命令;

git help 

查看 git 全副的命令;

git help -a 

查看 git 命令某个文档, 举个栗子:

git help add 

git status (查看状态)


查看状态

git status 

次要用于查看工作区与保留区的状态;文件状态如以下三种:
Untracked files: 未跟踪的文件,新创建的文件(未跟踪的文件);
Changes to be committed: 保留已批改的文件,该文件运行在 git add 的版本历史记录中,但还没有 commit ;
Changes not staged for commit: 保留已批改的文件;

  1. 未跟踪的文件 (Untracked) 和已批改的文件(Modified)通过 git add . 提交到暂存区区,应用 git reset HEAD <file> 还原到git add . 时的状态;
  2. 已批改的文件(Modified)应用 git checkout . 将以跟踪所有已批改的文件,还原到批改前的状态(Unmodifed);
  3. 以跟踪未修改的文件(Unodified)通过本地仓库切换出新分支所得;

查看状态,简写参数:-s

git status -s

git add(增加到暂存区)


将文件 / 文件夹提交到暂存区,增加单个或者多个;

git add file file1 ...

将当前目录下的所有文件增加到暂存区(蕴含批改的文件以及新增文件);

git add .

将曾经监控的文件增加到暂存区(不蕴含新增的文件);

git add -u

将以后我的项目下的所有变动都增加到暂存区;

git add -A

git commit(提交本地仓库)


Git commit 将工作区的内容提交到本地仓库,每次提交生成一个 commit-id,在版本回退起了重要的地位。

将工作区内容提交到本地仓库;

git commit -m 'message'

将暂存区已批改的文件提交到本地仓库, 注:已版本控制的文件;

git commit -a -m 'messgae'

如果咱们最近一次的提交信息写错了,能够应用上面命令批改;

git commit --amend

git 分支


查看本地仓库下的分支, 标记“*”的是当前工作区分支;

git branch 

查看所有的分支(本地仓库以及近程仓库分支),-a--all的简写;

git branch -a 

创立一个新分支;

git branch <branch_name>  //branch_name: 新分支名称

切换分支, 比方你当初在 master 分支上,切换到 develop 分支;

git checkout develop  // 切换到 develop 分支

删除某个分支,-d--delete的简写;

git branch -d  <branch_name>  // branch_name:须要删除的分支名
// 举个栗子:删除 develop 分支
git branch -d develop
// 强制删除某个分支,分支未合并,如果想删除,就应用上面命令;git branch -D develop

打印以后分支名称;

git branch --show-current

显示与工作区分支已合并的分支;

git branch --merged

显示与工作区分支未合并的分支;

git branch --no-merged

git checkout (检出)


git checkout次要的作用是切换分支或者还原工作区文件的变更。

切换分支;

git checkout <branch_name> // branch_name: 分支名称
git checkout develop // 切换到 develop 分支

创立新分支并且切换到这个分支上;

git checkout -b <branch_name> //  branch_name: 新增分支名称
git checkout -b develop   // 创立 develop 分支并切换到 develop 分支上

疏忽工作区的批改,切换分支;

git checkout -f  <branch_name>  // 疏忽批改切换到 branch_name 上

git merge(合并)


git merge的作用就是将指定的分支合并到以后分支;

合并分支;

git merge <branch_name> // branch_name: 分支名称

在合并分支时,产生合并抵触,退回到合并前的状态;

git merge --abort

git log(提交记录)


查看所有的提交记录;

git log   // 按 字母 q 退出查看

参数
–oneline: git log 的简写,输入 7 个 commit hash 的前 7 个字符,以及提交阐明;

git log --oneline 

-p:查看每次提交扭转的差别,这个很具体;

git log -p        //  查看每次提交扭转的差别
git log -p <file> // 查看指定文件的提交记录

–stat:查看每次提交的简略信息,能够疾速查看每次提交的差别,比 - p 简洁;

git log --stat

–prettry:这个参数用于自定义输入格局信息;比方:oneline[单行],format[定制工夫格局]

git log --prettry=oneline 

-n: n 代表限度输入的数量,最近的 n 条提交信息;

git log -2  // 最近两条的提交信息

–graph:查看在日志旁以 ASCII 图形显示分支与合并历史;

git log --graph

git diff(查看差别)


查看当前工作区与保留区文件批改了哪些内容(不蕴含新文件);

git diff 

查看当前工作区与上一个版本的差别;

git diff HEAD
git diff commit-id // 与 commit-id 版本比拟差别,commit-id:对应提交的版本号

查看当前工作区与另一个分支的差别;

git diff master  // 与 master 分支比拟差别

查看比照两个分支间的差别;

git diff master...develop  // 比照 master 分支与 develop 分支的差别

查看哪些文件改变了,有多少,能够应用 --stat 参数;

git diff --stat

git tag(打标签)


git tag用来标记 git 版本的标记;

查看所有的 tag 标记;

git tag 

创立一个 tag 标记;

git tag v0.0.1   

查看某个 tag 的详情内容;

git tag <tag_name>  // tag_name: tag 名称
// 比方:查看 v0.0.1 标记
git tag v0.0.1

删除某个 tag;

git tag -d v0.0.1

推送本地 tag 到远仓库;

git push origin --tags

查看近程仓库的所有 tag;

git ls-remote --tags origin

以某个 tag 创立新分支;

git checkout -b <branch_name> <tag_name>  // branch_name: 新分支名,tag_name:tag 名

git 远端仓库


查看近程仓库;

git remote -v

增加近程仓库;

git remote add <short_name> <url>  // short_name: 简短的名称,url:近程仓库地址

// 举个栗子:git remote add  fishStudy520  https://github.com/FishStudy520/git-demo.git

从近程仓库拉取和抓取到本地仓库,但未合并(同步近程仓库数据);

git fetch <remote>    //remote:近程地址

从近程仓库拉取和抓取到本地仓库,并且合并数据(同步近程仓库数据);

git pull origin master  // 拉去近程仓库数据

删除近程仓库的某个分支;

git push origin --delete <branch_name>  // branch_name: 远端分支名

推送到近程仓库;

git push origin master  // 推送到近程仓库的 master 分支

查看某个近程仓库;

git remote show origin

批改近程仓库名称;

 git remote rename old_name new_name 
 // 举个栗子:git remote rename fishStudy520 fish001

移除近程仓库;

git remote remove  fishStudy520  // 移除近程仓库 fishStudy520

git pull 与 git fetch 的区别:

git pull = git fetch  + git merge

储藏与清理


执行储藏操作,是将批改临时存储到堆栈中
场景:当你在我的项目上批改一些内容,而当初长期线上有个紧急 bug 须要修复,然而你不想这么一会就创立一次提交,这时应用 stash,将批改保留。等 Bug 批改完后,再次切回原分支,从堆栈中复原刚刚储藏的内容。

储藏内容,增加备注信息,不便当前查找;

git stash save <message> // message:备注信息(可选参数下)or
git stash // 不增加备注信息

查看储藏列表;

git stash list

查看储藏的内容变更,默认显示第一个,如果查看其余的储藏,在 stash${num},num 代表哪个储藏;

git show stash      // 默认第一个,索引为 0,git show stash@{1}  // 查看第二次储藏的内容有哪些

利用某个储藏,但不会在堆栈列表中删除,这里的索引从 0 开始;注:0 最新的一次保留,1 上一次储藏,以此类推;

git stash apply // 默认应用最近一次的储藏,相当于 git stash apply stash${0} 
git stash apply stash${1}  // 应用第二个储藏

利用某个储藏,并且从堆栈列表中删除;

git stash pop stash@{2}  // 应用第 3 个储藏, 并且删除从缓存中删除

将之前的某次储藏从列表中删除;

git stash drop stash@{2}  // 抛弃列表中的第 3 次储藏

删除所有储藏的 stash;

git stash clear

总结


最初


如果喜爱或对你有用,那就点个赞呗(????????????)!(╯ε╰)(╯ε╰)(╯ε╰)。

退出移动版