一学就会的git命令
SegmentFault
共 5055字,需浏览 11分钟
·
2021-01-06 18:43
导读
使用git 已不知好几年,最近想着把常用的一些git 命令做个总结,本文主要写的是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 的子目录
2.第二种方式,拉取(克隆)远程已存在的git仓库;
git clone
// 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: 保存已修改的文件;
未跟踪的文件(Untracked)和已修改的文件(Modified)通过git add .提交到暂存区区,使用git reset HEAD 还原到git add .时的状态; 已修改的文件(Modified)使用git checkout .将以跟踪所有已修改的文件,还原到修改前的状态(Unmodifed); 以跟踪未修改的文件(Unodified)通过本地仓库切换出新分支所得;
git status -s
git add(添加到暂存区)
git add file file1 ...
git add .
git add -u
git add -A
git commit(提交本地仓库)
git commit -m 'message'
git commit -a -m 'messgae'
git commit --amend
git 分支
git branch
git branch -a
git branch
//branch_name: 新分支名称
git checkout develop // 切换到develop分支
git branch -d
// 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
// branch_name:分支名称
git checkout develop //切换到develop 分支
git checkout -b
// branch_name:新增分支名称
git checkout -b develop // 创建develop 分支并切换到develop分支上
git checkout -f
// 忽略修改切换到 branch_name 上
git merge(合并)
git merge
// branch_name: 分支名称
git merge --abort
git log(提交记录)
git log // 按 字母 q 退出查看
--oneline: git log 的简写,输出7个commit hash 的前7个字符,以及提交说明;
git log --oneline
git log -p // 查看每次提交改变的差异
git log -p// 查看指定文件的提交记录
git log --stat
git log --prettry=oneline
git log -2 // 最近两条的提交信息
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 分支的差异
git diff --stat
git tag(打标签)
git tag
git tag v0.0.1
git tag
// tag_name: tag名称
// 比如:查看v0.0.1 标记
git tag v0.0.1
git tag -d v0.0.1
git push origin --tags
git ls-remote --tags origin
git checkout -b // branch_name:新分支名,tag_name:tag名
git 远端仓库
git remote -v
git remote add
// short_name: 简短的名称,url:远程仓库地址
// 举个栗子:
git remote add fishStudy520 https://github.com/FishStudy520/git-demo.git
git fetch
//remote:远程地址
git pull origin master // 拉去远程仓库数据
git push origin --delete
// 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 merge
贮藏与清理
场景:当你在项目上修改一些内容,而现在临时线上有个紧急bug 需要修复,但是你不想这么一会就创建一次提交,这时使用stash,将修改保存。等Bug 修改完后,再次切回原分支,从堆栈中恢复刚刚贮藏的内容。
git stash save
// message:备注信息(可选参数下)
or
git stash //不添加备注信息
git stash list
git show stash //默认第一个,索引为0,
git show stash@{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次贮藏
git stash clear
总结
评论