【git】之常用命令
再使用git过程常用的命令在6-10左右,但是如果你想精通git那么需要记住的命令在80左右,
下面看这张图,我们了解一下git的概念的常用操作!
Workspace:工作区(例如eclipse的工作目录)
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
初次运行git需要设置用户信息
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
1、新建代码库
# 在当前目录新建一个Git代码库
$ git init # 新建一个目录,将其初始化为Git代码库
$ git init [project-name] # 下载一个项目和它的整个代码历史
$ git clone [url]
2、git配置
Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。
# 显示当前的Git配置
$ git config --list # 编辑Git配置文件
$ git config -e [--global] # 设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
3、git新增或者删除文件
# 添加指定文件到暂存区
$ git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录
$ git add [dir] # 添加当前目录的所有文件到暂存区
$ git add . # 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ... # 停止追踪指定文件,但该文件会保留在工作区
$ git rm --cached [file] # 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
4、git代码提交
# 提交暂存区到仓库区
$ git commit -m [message] # 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message] # 提交工作区自上次commit之后的变化,直接到仓库区
$ git commit -a # 提交时显示所有diff信息
$ git commit -v # 使用一次新的commit,替代上一次提交
# 如果代码没有任何新变化,则用来改写上一次commit的提交信息
$ git commit --amend -m [message] # 重做上一次commit,并包括指定文件的新变化
$ git commit --amend [file1] [file2] ... #允许空白提交
$ git commit --allow-empty -m "dsd"
5、git分支
# 列出所有本地分支
$ git branch # 列出所有远程分支
$ git branch -r # 列出所有本地分支和远程分支
$ git branch -a # 新建一个分支,但依然停留在当前分支
$ git branch [branch-name] # 新建一个分支,并切换到该分支
$ git checkout -b [branch] # 新建一个分支,指向指定commit
$ git branch [branch] [commit] # 新建一个分支,与指定的远程分支建立追踪关系
$ git branch --track [branch] [remote-branch] # 切换到指定分支,并更新工作区
$ git checkout [branch-name] # 建立追踪关系,在现有分支与指定的远程分支之间
$ git branch --set-upstream [branch] [remote-branch] # 合并指定分支到当前分支
$ git merge [branch] # 选择一个commit,合并进当前分支
$ git cherry-pick [commit] # 删除分支
$ git branch -d [branch-name] # 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
6、git标签
# 列出所有tag
$ git tag # 新建一个tag在当前commit
$ git tag [tag] # 新建一个tag在指定commit
$ git tag [tag] [commit] # 查看tag信息
$ git show [tag] # 提交指定tag
$ git push [remote] [tag] # 提交所有tag
$ git push [remote] --tags # 新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]
7、git查看信息
# 显示有变更的文件
$ git status # 显示当前分支的版本历史
$ git log # 显示commit历史,以及每次commit发生变更的文件
$ git log --stat # 显示某个文件的版本历史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file] # 显示指定文件相关的每一次diff
$ git log -p [file] # 显示指定文件是什么人在什么时间修改过
$ git blame [file] # 显示暂存区和工作区的差异
$ git diff # 显示暂存区和上一个commit的差异
$ git diff --cached [file] # 显示工作区与当前分支最新commit之间的差异
$ git diff HEAD # 显示两次提交之间的差异
$ git diff [first-branch]...[second-branch] # 显示某次提交的元数据和内容变化
$ git show [commit] # 显示某次提交发生变化的文件
$ git show --name-only [commit] # 显示某次提交时,某个文件的内容
$ git show [commit]:[filename] # 显示当前分支的最近几次提交
$ git reflog
8、git远程同步
# 下载远程仓库的所有变动
$ git fetch [remote] # 显示所有远程仓库
$ git remote -v # 显示某个远程仓库的信息
$ git remote show [remote] # 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url] # 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch] # 上传本地指定分支到远程仓库
$ git push [remote] [branch] # 强行推送当前分支到远程仓库,即使有冲突
$ git push [remote] --force # 推送所有分支到远程仓库
$ git push [remote] --all
9、撤销
# 恢复暂存区的指定文件到工作区
$ git checkout [file] # 恢复某个commit的指定文件到工作区
$ git checkout [commit] [file] # 恢复上一个commit的所有文件到工作区
$ git checkout . # 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard # 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit] # 重置当前HEAD为指定commit,但保持暂存区和工作区不变
$ git reset --keep [commit] # 新建一个commit,用来撤销指定commit
# 后者的所有变化都将被前者抵消,并且应用到当前分支
$ git revert [commit]
10、其他操作
# 生成一个可供发布的压缩包
$ git archive
文参考:
https://www.ezlippi.com/blog/2016/02/git-guide.html#more
以上是我们git最常用的命令,一些特殊的操作命令,我们需要查看一些手册!
[core]
repositoryformatversion = 0
filemode = false
logallrefupdates = true
[remote "origin"]
url = x
push = refs/heads/master:refs/heads/master
fetch = refs/heads/master:refs/remotes/origin/master
【git】之常用命令的更多相关文章
- GIT 版本控制常用命令学习汇总
GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...
- git log 常用命令及技巧
git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...
- Git基本常用命令
Git基本常用命令如下: mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件. git ...
- Git是什么、Git的功能、为什么versioncontrol用Git、Git的常用命令、Git的优缺点
Git是什么 git是目前世界上最先进的分布式版本控制系统(没有之一). Git是用于 Linux内核开发的版本控制工具.与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版 ...
- Git stash 常用命令
参考: Git: How to look at the stash Git学习笔记05--git stash Git stash 常用命令 1.git stash: 保存当前的工作进度: 2.git ...
- Git 基础 —— 常用命令
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 git init 创建 Git ...
- git之常用命令
git之常用命令 1.下载远程仓库最新代码 $ git pull --rebase origin master 2.上传代码 $ git push origin master 3.退出编辑 ESC + ...
- git的常用命令。。
git的常用命令.. git help <command> 显示command的help git show 显示某次提交的内容 git show $id git co -- <f ...
- Git - Git基本常用命令
Git基本常用命令 mkdir: XX (创建一个空目录 XX指目录名) pwd: 显示当前目录的路径. git init 把当前的目录变成可以管理 ...
- Git的常用命令记录
Git的常用命令记录 1.与远程仓库建立连接,即关联一个远程库 git remote add origin git@server-name:path/repo-name.git; 2.查看当前分支 ...
随机推荐
- s21day05 python笔记
s21day05 python笔记 一.昨日内容回顾及补充 回顾 补充 列表独有功能 extend:循环添加到一个列表中 1.users = ['张三',66],people = ['王五',99] ...
- day 016 面向对象---类与类的关系
---恢复内容开始--- 一 依赖关系(最轻的一种关系,在方法中引入另一个类的对象) class Elephant: def __init__(self,name): self.name=name ...
- nginx根据url中的参数进行转发
在实际项目中,由于https安全策略,我们无法直接跳转到我们想要跳转到的地址 例如 url:https://abc.dc.com/image?url=https://vpic.video.qq.com ...
- 微处理器CPU 50年
CPU50年 ===电子管时期1912年:美国青年发明家德.福雷斯特(L.De Forest)在帕洛阿托小镇首次发现了电子管的放大作用.1946年:地球上第一台电子数字式计算机(ENIAC(埃尼阿克) ...
- 怎样去掉wordpress中默认的未分类目录
默认的是不能删除的,要删除未分类,需要将默认的分类目录设置为其他 具体设置方法为:后台-设置-撰写,将撰写设置下面的默认链接分类目录设置为其他的,点击下面的保存更改,然后就可以删除默认的未分类目录了.
- CH#46A 磁力块
题意 磁力块 CH Round #46 - 「Adera 8」杯NOI模拟赛 描述 在一片广袤无垠的原野上,散落着N块磁石.每个磁石的性质可以用一个五元组(x,y,m,p,r)描述,其中x,y表示其坐 ...
- MySQL--使用innodb_force_recovery修复数据库异常
当MySQL服务异常重启失败后,可以通过配置参数innodb_force_recovery来对MySQL服务进行修复启动. 参数innodb_force_recovery选项: 1 (SRV_FORC ...
- code自动补全
软件安装完成后,第一次一定要使用这种方式创建文件,才会有代码自动提示: https://blog.csdn.net/haibin8473/article/details/79113650 https: ...
- oracle-锁概念
http://liwenshui322.iteye.com/blog/1166934 ORACLE DDL锁介绍 在DDL操作中会自动为对象加DDL锁(DDL Lock),从而保护这些对象不会被其他会 ...
- vi常用操作
什么是vi: vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样,咱们一般操作linux服务器的时候都是没有图形化界面的, 怎么移动光标,到哪个位置,替换修改什 ...