Git的基本命令大全-灵析社区

JACKY

Git的基本命令大全

设置

git config --global user.name “youname”
git config --global user.email “youemail”
git config --global hello.test onlytest
//全局配置文件位于 %userprofile%/.gitconfig, 本地配置指cmd的当前工作目录

获取

git config --get user.name
git config --get-all user.name //从各个级别(本地 全局)的配置文件中取配置值
git config --get-regexp user* //用正则指定想获取的配置项

删除

git config --global --unset hello.test
git config --global --remove-section hello

显示

git config -l
git config --global -list
#显示帮助
git config -h //命令行里显示简要帮助
git config --help //浏览器打开git安装目录下的html帮助文件
初始化本地git仓库

创建目录 初始化本地git仓库

mkdir myproject
cd myproject
git init //创建空的git仓库或重新初始化已有的仓库,创建.git目录(objects,
refs/heads, refs/tags, HEAD和模板文件)
git init-db //同 git-init
git fsck //检查仓库有没有错误
git gc //用垃圾回收机制清除由于reset造成的垃圾代码

添加文件并提交

git add / git add .
git commit -m “some comments”
git commit -a -m “add and commit”
查看状态
git diff //工作目录 和 index的差异比较
git diff --cached//index和HEAD(最近一次提交)的差异比较
git diff HEAD //工作目录同HEAD的比较
git diff … #分支比较

git status //当前分支状态

查看日志

git log / git log -p
git log … //显示两个标签之间的提交日志
git log … //显示tag1标签之后的提交日志
git log --since=“2 weeks ago”
git log -n 3 //查看最近3次的提交日志
git log v1.0… somefolder //somefolder从v1.0后的提交日志

gitk --since=“2 weeks ago”
git show HEAD //查看最近一次提交日志

撤销修改

//git reset 是指 撤销到哪个commitId,缺省commitId 则为HEAD
git reset //若当前修改stage了,但未提交,则回退,HEAD->index
git reset HEAD //HEAD->index 同上

git reset --hard HEAD //working tree, index file 都撤销到最后一次commit的状态
git reset --soft HEAD^ //恢复到上一次commit的代码 soft表示不改动index file和working tree
git reset HEAD //默认是 --mixed, index file 和 commit都会撤销到最后一次commit之前的状态, working file不受影响。

git reset – //撤销某文件的staged状态 (git status查看变化) HEAD->index
git reset – . #撤销当前文件夹的staged状态

git rebase //重设基

分支管理

创建

git branch mybranch //创建分支
git checkout -b local_name origin/remote_name #基于远端分支创建新分支
如:git checkout -b dev origin/dev,作用是checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
git branch //基于某标签建立分支

查看

git branch -a //显示所有分支
git branch -r //显示远端分支
git branch //列出所有分支
git show-branch //显示所有分支 信息多一点
git branch -v //同上

切换 合并

git checkout mybranch //切换分支 ,
git checkout -b otherBranch 创建并切换
git checkout master
//do some change in master
git merge mybranch //合并分支到主干
//若有冲突 手动解决冲突后,再次提交
vim
git commit -a -m “conflit resolved” //解决冲突后重新提交
gitk //可视化分支查看界面

删除

git branch -d mybranch //分支合并到主干后 删除分支
git branch -D mybranch //无论分支是否合并 都执行删除
添加和查看远端仓库
git remote add origin repoUrl //添加远端仓库

git remote show origin

显示远端仓库的详细信息(fetchUrl pushUrl, branches, “local branches configured for ‘git pull’” , "local refs configured for ‘git push’ ")

推送数据

git push origin localBranch:remoteBranch//推送数据

//本地master推送到远程的remaster 如:
git push origin master:remaster
检出代码
//检出代码到本地某文件夹, repoUrl可以为远端url或本地路径
//(注:只clone远端仓库的当前分支,并非全部分支都clone过来)
git clone

//clone 远端仓库的某个分支
git clone -b <remote_branch> <remote_repo>

//pull的意思是指从远端git仓库fetch修改的代码,
//然后merge到本地的git仓库当前分支/指定分支中
git pull master

//根据本地分支-远程分支的对应关系从远端拉取更新
//如git clone的仓库和自动和远程仓库的default分支建立对应关系
git pull

git fetch origin remote_branch_name:local_branch_name
//拉取远端git仓库master分支到本地mybranch2分支
git fetch master:mybranch2
查看git对象信息(commit, tag, branch)
git show //查看某个提交的信息,git log可获得commitid
git show HEAD //HEAD可以认为是最近一次commit的 commitid 同 git log -n 1 -p
git show HEAD^ //显示上一次commit的信息(parent commit)
git show HEAD^^ //显示上上次commit
git show HEAD~3 //显示前3次commit
git show HEAD^1 //显示第1个上次commit(parent commit)

git show //显示分支信息最近一次提交的信息

标签管理

git tag //给最近的提交加标签 git tag v1.0
git tag //给某次commit加标签(起别名)
git show //显示某标签对应commit的信息
查看git对象
//查看git对象内容(tree, blob, HEAD ,index)
git cat-file -t //-t 获取id对应对象的类型
git cat-file commit //查询一个commit对象
git cat-file blob //查看二进制对象的内容
git ls-tree //查看树对象
git ls-files --stage //查看index file的内容

cd .git
cat HEAD

搜索内容

//内容搜索
git grep “keyword” //在某分支的文件中 搜索关键字
git grep “keyword” //在所有历史记录中搜索
查看帮助
//获取帮助
git -h //直接在命令行显示用法
git --help //用浏览器打开对应的文档

阅读量:866

点赞量:0

收藏量:0