Git命令整理

Git常用命令

一般命令
git --version //查看git版本信息
git config --global user.name //获取当前登录用户名
git config --global user.email //获取当前登录用户的邮箱
登录Git
//如果刚没有获取到用户配置,则只能拉取代码,不能修改  要是使用git,你要告诉git是谁在使用
git config --global user.name 'userName' //设置git账户,userName为你的git账号
git config --global user.email 'email' //设置git账户邮箱
初始化Git仓库
//首先切换目录到你要初始化仓库的文件夹 cd /xx/xxx
git init //在该文件夹下初始化一个git仓库,会生成一个.git的隐藏文件夹
创建忽略文件
touch .gitignore //不需要服务器端提交的内容可以写到忽略文件里
	/*
		.git
		.idea
	*/

添加到暂存区
git add '文件名'
git add -A //全部添加到暂存区
添加到版本库中
git commit -m "备注信息"
查看版本
git log //查看日志
git log --oneline //单行查看日志,只显示版本号(commit id)前6位
git log --pretty=oneline //单行查看日志,显示版本号全部
比较差异
git diff //比较暂存区和工作区的差异
git diff --cached //比较暂存区和历史区的差异
git diff master //比较历史区和工作区的差异
git diff HEAD -- 文件名 //比较版本库中最新版本与工作区文件的区别
版本管理

git中当前版本为HEAD,上一个版本为HEAD,上上个版本为HEAD^,往上100个版本为HEAD~100

git reset --hard HEAD^ //回退到上个版本
git reset --hard HEAD~2 //回退到上上个版本
git reset --hard 版本号(commit id) //版本号只要写前几位就行了,git会去找匹配的,不过不能太短

如果已经回退到老版本,后悔了却不知道版本号

git reflog //查询命令历史
git checkout -- 文件名 //丢弃工作区的状态,此处有两种情况。
// 1.修改后没有增加到暂存区,则撤销到版本库最新的状态
// 2.已经添加到暂存区,然后又作了修改,则撤销到添加到暂存区的状态

如果文件修改增加到了暂存区,但还没有提交,可以把暂存区的增加撤销掉(unstage)

git reset HEAD 文件名
删除操作
git rm 文件名 //从版本库中删除文件
git commit -m "删除说明" //并提交

//或者也可以直接删除文件
rm 文件名 //直接从磁盘删除文件
远程仓库
git remote //查看远程仓库信息

git remote -v //显示更详细的信息

git remote add origin git仓库地址 //增加远程库地址,远程库名字是origin,这是git的默认叫法

git push -u origin master //由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

git push origin master //把本地master分支的最新修改推送至GitHub

git push origin dev //把本地dev分支修改推送到GitHub

git clone git仓库地址 //克隆远程仓库到本地

git checkout -b branch-name origin/branch-name //在本地创建和远程分支对应的分支

git branch --set-upstream branch-name origin/branch-name //建立本地分支和远程分支的关联

git pull //抓取远程的信息

git remote rm origin //删除已有的远程库

git remote add 仓库名称 git仓库地址 //自定义增加的远程库名称
分支切换
git checkout -b dev //创建dev分支,切换到dev分支
//加上-b参数表示创建并切换,相当于以下两条命令
git branck dev
git checkout dev

git branch //查看当前分支

//切换为master
git checkout master
//将dev分支的代码合并到master
git merge dev
//删除dev分支
git branch -d dev
//再查看分支,则dev分支已被删除
git branch

//如果分支进行了commit,但是没有merge到主分支,要强制删除分支
git branch -D dev

处理冲突,handle conflicts

//先查看文件内容
cat 文件名
<<<<<<< HEAD
...内容...
=======
...内容...
>>>>>>> dev
//Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,我们修改再保存
git add 文件名
git commit -m "备注"

git log --graph //查看分支合并图

//禁用fast-forward模式,git在merge的同时生成一个新的commit,这样在分支历史上就能看到分支信息
git merge --no-ff -m "提交说明" 分支名称 
存储分支修改
git stash //工作进行到一半,无法进行提交,可以使用此命令将工作现场储存起来

git stash list //查看储存的工作现场

git stash apply 储存的stash号 //恢复储存的stash,但是不会删除stash
git stash drop 储存的stash号 //删除储存的stash

git stash pop //恢复储存的stash,同时删除stash
本地提交分叉历史整理成直线
git rebase
标签
git tag <tagname> //创建新标签,默认标签是打在最新提交的commit上的
git tag //查看所有标签

git tag <tagname> 版本号 //在历史版本上打标签

git tag -a <tagname> -m "说明文字" //创建带有说明的标签,用-a指定标签名,-m指定说明文字
git show <tagname> //展示标签信息

git push origin <tagname> //推送某个标签到远程,使用命令

git push origin --tags //推送所有标签到远程

git tag -d <tagname> //删除某个标签

git push origin :refs/tags/<tagname> //可以删除一个远程标签
自定义Git
git config --global color.ui true //让Git显示颜色
//在git工作区根目录下创建 .gitignore文件,将要忽略的文件名填入进去,例如

# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini

# Python:
*.py[cod]
*.so
*.egg
*.egg-info
dist
build

# My configurations:
db.ini
deploy_key_rsa
git check-ignore //检查git ignore的文件

git 命令取别名

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
//配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用

git 删除别名

//每个仓库的Git配置文件都放在.git/config文件中

//当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

cat .gitconfig
[alias]
    co = checkout
    ci = commit
    br = branch
    st = status
[user]
    name = Your Name
    email = your@email.com
    
//配置别名也可以直接修改这个文件,如果改错了,可以删掉文件重新通过命令配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值