git常见命令
重要组成部分:
配置git
// 配置全局用户
git config --global user.name ‘用户名称’
git config --global user.email '邮箱’
//删除全局配置
git config --global --unset user.***
查看git配置信息
//查看系统配置信息
git config --list
//查看用户配置信息
cat ~/.gitconfig
//查看当前项目的配置信息
cat .git/config
//查看所有的本地git 命令历史
git reflog
//查看head 指向
cat .git/head
//提交记录
git log
//git 命令帮助
git log --help
基本命令
//查看工作状态和暂存区状态
# git status
//将工作区的文件提交到暂存区
#git add .
//将暂存区的文件提交到本地仓库
#git commit -m ’本次提交说明’
//省去add 和commit合并
#git commit -am '本次提交说明’
//将本地分支分支和远程分支关联
#git push -u origin branchName
//将本地分支文件推送到远程分支
#git push
//拉取远程分支文件
#git pull origin branchName
//合并分支
#git merge branchName
//查看本地分支
#git branch
//查看所有分支(本地分支和远程分支)
#git branch -a
//切换分支
#git checkout branchName
//临时将工作区文件临时存在暂存区
#git stash
//将上次保存暂存区的文件取出来
#git stash pop
常用命令
Add
#git add [file1] [file2] / [dir] / .
Status
#git status
Push & Pull
//本地仓库的文件推送到远程仓库
//如果远程仓库没有分支,则新建一个同名的远程分支
//如过省略远程分支,则表示两个同名
#git push <远程主机> <本地分支>:<远程分支>
#git push origin branchName
//如果省去了本地分支,则表示删除指定的远程分支(推送一个空分支到远程分支)
#git push origin :master
#等于
#git push origin --delete master
//建立当前分支和远程分支的追踪关系
#git push -u origin master
//如果关系已经建立,可以省略分支和-u
#git push
//不管是否存在分支,将所有的本地分支,推送到远程分支
#git push -all origin
//拉取所有远程分支到本地镜像仓库
#git pull
//拉取并合并一个分支
#git pull origin branchName
//等同于
#git fetch origin branchName
#git merge origin branchName
##############################################
Branch
//查看
//查看本地所有分支
#git branch / git branch -l
//查看远程分支
#git branch -r
//查看所有分支(本地+远程)
#git branch -a
//查看所有分支并带上最新提交信息
#git branch -av
//查看本地对应的远程分支
#git branch -vv
//新建分支
//在别的分支下新建分支,新分支会复制当前分支的内容,
#git branch branchName
//新建分支
#git checkout branchName
//创建分支,并切换对应分支
#git checkout -b branchName
//基于master分支创建分支
#git checkout -b branchName master
//建立一个空分支
#git checkout --orphan emptyBranchName
#git rm -rf .
#删除本地分支,如果add了的,不发删除
#git branch -d branchName
#删除本地分支,未合并分支,也可以删除
#git branch -D branchName
//删除远程分支
#git push origin :branchName
#或
#git push origin --delete 远程分支
//修改当前分支名称
#git branch -m branchName
Merge
#git merge
Stash
#能够将未提交的文件保存到暂存区中,用于恢复工作区
//将未提交文件保存到暂存区
#git stash
//将未提交文件保存到暂存区,提交备注
#git stash save ‘备注说明’
//查看暂存区记录
#git stash list
//恢复后statsh 记录存在
#git stash apply ’stash@{index}’
//恢复后stash 记录不存在
#git stash pop ’stash@{index}’
//删除stash 记录
#git stash drop ’stash@{index}’
//清空所有的存储记录
#git stash clear
//查看stash记录下的文件
#git stash show ’stash@{index}’
//查看stash记录下修改文件详情
#git stash show -p ’stash@{index}’
Diff
//查看工作区和暂存区单个文件的对比
#git diff filename
//查看工作区和暂存区的所有文件对比
#git diff
//查看工作区和暂存区对比,显示有差异的文件列表
#git diff --stat
//查看多个本地分支指定的文件差异
#git diff branchName .. branchName filename
//查看多个本地分支的多有差异
#git diff branchName .. branchName
//查看远程分支和本地分支的所有差异
#git diff origin/branchName .. branchName
//查看远程分支和远程分支的所有差异
#git diff origin/branchName .. origin/branchName
//查看提交记录差异
#git diff commit1 ..commit2
Remote
//查看所有远程主机
#git remote
//查询远程主机详细信息
#git remote -v
//添加远程仓库管理关联
#git remote add projectName
//删除远程仓库管理关联
#git remote rm projectName
Tag
//常用于发布版本
//在head上建立一个标签
#git tag v1
//指定commit ID 建立 一个标签
#git tag v1.9 0fd34f2
//建立备注的说明的标签
#git tag -a v1.0 -m ‘标签名称’
//所有标签
#git tag
//单个标签的具体信息
#git show tagName
//推送本地标签到远程分支
#git push origin tagName
//推送所有未提交的标签到远程分支
#git push origin —tags
//删除本地标签
#git tag -d v1
//删除远程标签(先删除本地标签,再删除远程标签)
#git push origin :refs/tags/tagName
Rm
//删除工作区和暂存区的文件
#git rm filename
//删除暂存区的文件,不删除工作区文件
#git rm —cached filename
checkout
//恢复暂存区指定文件到工作区
#git checkout filename
//恢复暂存区所有文件到工作区
#git checkout .
//回复提交的版本
#git checkout HEAD
#git checkout HEAD —filename
#git checkout HEAD^
#git checkout HEAD^^
//切换分支
#git checkout branchName
//切换到commit版本
#git checkout commit_id
//切换到指定标签
#git checkout tag
应用场景
创建仓库:
git init / git clone
//远程仓库
git init --bare建立一个空的裸仓库
mkdir testgit.git
cd testgit.git/
git init --bare
//本地仓库
mkdir git_tmp
cd git_tmp/
git init
touch README
echo 'init' > README
git add .
git commit -m 'init'
git remote add origin localhost:/testgit/testgit.git
git push -u origin master
设置免密钥登陆
#ssh-keygen -t rsa -C “邮箱号”, 一直回车
#cat ~/.ssh/id_rsa.pub , 添加到公钥到GitHub 上。
#测试ssh 连接是否对
#ssh -T git@github.com