查看用户名和邮箱地址:
- $ git config user.name
- $ git config user.email
修改用户名和邮箱地址:
- $ git config --global user.name “username”
- $ git config --global user.email “email”
$ mkdir learngit 新建一个learngit 文件目录 在你安装git文件夹内
$ cd learngit //跳转到learngit目录中
$ pwd //显示当前目录
$ git init //将这个目录编程Git可以管理的仓库
编写一个 readme.text
将这个文件添加到Git仓库中去
第一步:$ git add readme.txt
第二步:$ git commit -m "wrote a readme file"
//注: -m 后面输入的是本次提交的说明 说明此次改动都做了什么
$ git status命令可以让我们时刻掌握仓库当前的状态
$ git diff 查看当前的文件被修改了什么
$ git log 查看输出Git的上传信息 从下向上
$ git log --pretty=online 格式化LOG
$ git reflog
查看命令历史,以便确定回到未来的那个版本
版本回退和回退到前100个版本
$ git reset --hard HEAD^
$ git reset --hard HEAD~100 //退到前100个版本
$ git reset --hard 3628164
//可以查看工作区和版本库里面最新版本的区别
git diff HEAD -- readme.txt
//将readme.txt文件在工作区的修改全部撤销
git checkout -- readme.txt
//此方法可以在add到了暂存区的修改回退到工作区
git reset HEAD readme.txt
$ rm test.txt 删除文件
关于推送到GitHub和克隆下来
//错误提示:fatal: remote origin already exists. 输入以下命令然后重新remote就可以了
$ git remote rm origin
$ git remote add origin git@github.com:EverZc/first.git
//第一次推送的时候需要使用-u 为了使得本地和网络的关联起来 方便以后的推拉
$ git push -u origin master
//本地提交以后可通过以下命令进行推送
$ git push origin master
git@github.com:EverZc/first.git
这里的这个网址是在SSH秘钥获取之后GitHub提供的
//克隆下来
git clone git@github.com:EverZc/New.git
创建和合并分支
//创建并切换分支
$ git checkout -b dev
// 同以上代码一模一样
$ git branch dev //创建分支
$ git checkout dev //切换分支
//查看当前分支
$ git branch
//合并某分支到当前分支
$ git merge dev
//删除分支
$ git branch -d dev
//查看分支情况
$ git log --graph --pretty=oneline --abbrev-commit
//用这种方法合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
$ git merge --no-ff -m "merge with no-ff" dev
BUG分支的操作
//隐藏当前工作的分支内容 就是说把现在的工作现场给隐藏起来然后等以后工作了再恢复出来
$ git stash
//查看隐藏的列表
$ git stash list
//恢复隐藏的工作区
$git stash apply
//删除隐藏区的工作内容
$git stash drop
//隐藏并删除隐藏区的内容
$git stash pop
如果新添加了一个功能 在合并之前可以通过$git branch -D <name>
强行删除这个功能~!
多人协作
//查看远程库的信息
$ git remote
//查看远程库的详细信息
$ git remote -v
//向远程库推送分支
$ git push origin master
//向远程库推送其他分支
$ git push origin dev
提交分支的时候出现分支冲突解决办法~
//创建远程dev 并且在上面开发
$ git checkout -b dev origin/dev
//提交以后可以推送上去
$ git commit -m "提交的内容"
$ git push origin dev(如果推送失败 先用git pull拉取远程的新提交)
//如果此时你提交了相同的文件会显示提交失败 应该从origin/dev抓下来然后本地合并 解决冲突再推送
$ git pull
//如果拉取也失败了 原因是没有指定本地的dev分支与远程origin/dev分支的链接
$ git branch --set-upstream dev origin/dev
//设置好以后再 拉取pull
$ git pull
创建标签
//在需要标签的分支上直接输入以下命令
$ git tag v1.0
//想对历史的commit id上打标签
$ git tag v0.9 6224937 (id号)
//查看标签
$ git tag
//查看标签下的详细信息
$ git show <tagname>
//创建带有说明的标签,用-a指定标签名,-m指定说明文字
$ git tag -a v0.1 -m "version 0.1 released" 3628164
//-s 通过私钥签名一个标签
$ git tag -s v0.2 -m "signed version 0.2 released" fec145a
操作标签:
//删除标签
$ git tag -d v0.1
//推送标签到远程
$ git push origin v1.0
//一次性推送到远程的本地标签
$ git push origin --tags
//如果已经推送到远程想删除的话 先从本地删除
//然后从远程删除 删除命令也是push
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
配置别名
配置文件放在 .git/config文件中
//将st 替换成 status
$ git config --global alias.st status
20181205新增
相对引用
git checkout master` 向后退一步
git checkout master^4 向后退4步
git branch -f master HEAD~3
上面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。