博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git
阅读量:5776 次
发布时间:2019-06-18

本文共 3334 字,大约阅读时间需要 11 分钟。

  hot3.png

创建一个版本库

$ mkdir learngit 

$ cd learngit

$ git init

创建一个文件

touch readme.txt

$ git add readme.txt

$ git commit -m "wrote a readme file"

查看版本库当前状态

$ git status

查看修改内容

$ git diff readme.txt

提交修改的文件

$ git add readme.txt

$ git commit -m "add distributed"

查看日志

$ git log

$ git log --pretty=oneline

回退版本(HEAD~)上个版本(HEAD~~)上上个版本(HEAD~100)上100个版本

$ git reset --hard HEAD~

记录每一个命令

$ git reflog

回退到版本(3628164)版本号可以通过核查上面的命令找到

$ git reset --hard 3628164

Git跟踪并管理的是修改,而非文件,add是将文件放置到暂存区,commit是将暂存区的文件提交,同一个文件中A修改成B然后add,再修改成C,再commit,这是分支上存储的是B,本地工作区存储的C.

撤销工作区的修改(--)很重要,如果没有就表示切换到另一个分支

$ git checkout -- readme.txt

以上的命令只是撤销到没有放置到暂存区的状态,也就是add或者commit后的状态,对于已经放置到暂存区(add)的文件使用以下命令撤销

$ git reset HEAD readme.txt

$ git checkout -- readme.txt

删除文件

$ git rm test.txt

$ git commit -m "remove test.txt"

添加远程库

git remote add origin https://github.com/sunaogit/learngit.git

git push -u origin master  (第一次)

$ git push origin master

从远程克隆

$ git clone git@github.com:sunaogit/gitskills.git

Git支持多种协议,包括https(每次要输入口令),但通过ssh支持的原生git协议速度最快。

使用ssh参考

分支管理

创建分支(-b)表示创建并切换

$ git checkout -b dev

$ git branch dev 

$ git checkout dev

查看分支

$ git branch

切换分支到分支(master

$ git checkout master

合并分支(把dev的成果合并到master上,当前在master分支)

$ git merge dev

合并分支如果存在冲突

$ git status  (查看冲突文件)

修改冲突文件后再次提交

$ git add readme.txt 

$ git commit -m "conflict fixed"

查看分支合并情况(查看分支合并图)

$ git log --graph --pretty=oneline --abbrev-commit

删除分支

$ git branch -d dev

强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

$ git merge --no-ff -m "merge with no-ff" dev

再查看分支是可以看到分支的历史合并情况,如果不禁用,那么分支合并图上是没有显示的。

Bug分支

如果当前发现有bug需要立即修复,当前dev正在开发中,暂时不能提交,可以使用以下命令将工作区存储起来

$ git stash

$ git checkout master

$ git checkout -b issue-101

$ git checkout master

$ git merge --no-ff -m "merged bug fix 101" issue-101

$ git branch -d issue-101

$ git checkout dev

$ git stash list

恢复工作区并删除stash,如果不删除使用apply代替pop

$ git stash pop

删除stash

git stash drop

多次回复stash,(stash@{

0})使用list查看

$ git stash apply stash@{

0}

删除未合并的分支,(-D)强制删除

$ git branch -D feature-vulcan

推送到远程仓库

$ git push origin master

origin使用一下命令查看

$ git remote

查看远程仓库详细信息

$ git remote -v

抓取远程分支(dev

$ git checkout -b dev origin/dev

推送分支

$ git push origin dev

如果推送失败表示已经有人修改过分支,先将分支最新的提交抓取下来

$ git pull

如果抓取也失败,可能是本地(dev)和远程的分支(origin/dev)的链接没有指定

$ git branch --set-upstream dev origin/dev

然后再次抓取,如果存在冲突解决冲突后,在推送

$ git push origin dev

创建标签(标签是默认打在最新提交的commit上)

$ git tag v1.0

也可以打在指定的commitId(6224937)上,

$ git tag v0.9 6224937

查看commitId

$ git log --pretty=oneline --abbrev-commit

查看标签信息

$ git show v0.9

添加标签是带说明,(-a)指定标签名,(-m)指定说明文字

$ git tag -a v0.1 -m "version 0.1 released" 3628164

删除标签

$ git tag -d v0.1

推送标签到远程

$ git push origin v1.0

一次性推送未推送的所有标签

$ git push origin --tags

删除远程标签

$ git tag -d v0.9

$ git push origin :refs/tags/v0.9

忽略特殊文件,创建

配置别名,以下配置后git st可以达到git status效果(--global)全局效果

$ git config --global alias.st status

$ git config --global alias.co checkout

$ git config --global alias.ci commit 

$ git config --global alias.br branch

$ git config --global alias.unstage 'reset HEAD'

$ git config --global alias.last 'log -1'

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
配置文件(版本库)

$ cat .git/config

配置文件(全局)

cat ~/.gitconfig

删除别名直接在配置文件里删除对应的行即可

学习来自于

转载于:https://my.oschina.net/makouz/blog/630905

你可能感兴趣的文章
Gredle在window7中的下载及安装
查看>>
LINUX 安全运维 (三)
查看>>
Hadoo——1:搭建
查看>>
Maven学习总结(六)——Maven与Eclipse整合
查看>>
缓存对象cookie对象(asp.net技术)
查看>>
修改linux系统时间
查看>>
Python-集合
查看>>
Docker学习总结(2)——Docker实战之入门以及Dockerfile(二)
查看>>
Java基础学习总结(23)——GUI编程
查看>>
lua与javascript的相似之处
查看>>
swiper教程--swiper的基础使用(二十)
查看>>
Apache之AllowOverride参数详解
查看>>
excel 2010错误值
查看>>
关于翻译人生
查看>>
shell编程(十四)--- until循环
查看>>
java web中session简单的使用
查看>>
Hibernate(三)——框架中的关系映射
查看>>
20140109 - VDI (虚拟桌面架构)& thin client (瘦客户端)
查看>>
pomelo解耦代码组织
查看>>
Unity接入cpp代码 TODO
查看>>