git常用命令总结

github windows安装,官网[git下载](https://git-scm.com/download/win)直接下载安装
sudo apt-get install git   linux下安装
$ git config --global user.name "yourname"
$ git config --global user.email "email address"
$ mkdir filepackage   创建文件夹
$ cd filepackage      切换到创建的文件夹
$ git init            将创建的文件夹初始化为可以被git管理的文件夹
$ git add 文件名      将创建的文件添加到暂存,可多次添加
$ git add *  添加全部文件
$ git commit -m "提交说明"          提交到版本库(仓库)
$ git status          查看仓库(修改后)当前状态

文件内容作出修改后
$ git diff 文件名     查看文件具体的修改内容
$ git add 文件名
$ git commit -m "提交说明"
$ git status    #如果没有暂存,将提示没有将要提交的修改,工作目录是干净的

版本回退
$ git log    查看所有版本信息
$ git log --pretty=oneline     缩小信息显示
$ git reset --hard HEAD^     '^'表示上一个版本,'~14'表示往上14个版本
$ cat 文件名      查看文件详细信息
$ git reset --hard 1094a   1094a(没写全)版本对应的唯一哈希值,这个操作可以回返任意版本(包括未来的)
$ git reflog     查看过去所有执行过的命令
$ git diff HEAD -- readme.txt  用于查看工作区和版本库里最新版本的区别
$ git add 文件名      只有将文件保存到暂存(可多次保存再提交),提交时才能更新到版本库
$ git checkout -- readme.txt   意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
$ git reset HEAD <file>     以把暂存区的修改撤销掉(unstage),重新放回工作区
$ rm test.txt   一般删除,git仓库未确认
$ git rm 文件名    从仓库中删除文件


关于远程仓库github
  先创建一个新的空仓库
$ git remote add origin https://github.com/unlimitedlearning/git_warehouse.git  将本地仓库绑定到远程库origin(git默认,可以改)
$ git push -u origin master      将本地库的当前分支推送到远程库,第一次推送加 -u 命令,可以把本地分支与远程分支绑定起来,
后面的推送可以省略此命令 如下:
$ git push origin master   在本地仓库提交后,可以用此命令将本地分支推送到远程库
$ cd ~/.ssh  切换到ssh目录 默认
$ ssh-keygen -t rsa -C "your email"  创建自己的ssh
$ ssh -T git@github.com  测试配置ssh后的连接
注意:配置ssh只能在当前工作仓库进行配置,如果当前本地仓库推送过远程,那么ssh默认添加,不需要重新添加


创建和合并分支
$ git checkout -b dev   创建分支dev并将head指针移到dev
$ git branch dev
$ git checkout dev  这两条命令相当于第一条命令
$ git merge dev    合并分支dev到当前分支
$ git branch -d dev   删除分支dev

解决冲突
$ git checkout -b feature1   #创建并将head移到feature1
在当前分支下修改文件已有文件readme.txt
$ git add readme.txt
$ git commit -m "simple"  提交到本地仓库
$ git checkout master     切换到master分支
在master分支下再次修改文件readme.txt
$ git add readme.txt
$ git commit -m "simple"  提交到本地仓库
$ git merge feature1   合并feature1分支,会产生冲突
$ cat README.md        会这样显示
# hello-world
testting
Creating a new branch is quick.
<<<<<<< HEAD       当前工作分支指向head
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1    另一个分支

no-ff 合并冲突分支(非快速合并no Fast forward)
$ git merge --no-ff -m "merge with no-ff" dev
$ git log --graph --pretty=oneline --abbrev-commit  查看分支no-ff 合并后的详细情况
分支策略:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时
再把dev分支合并到master上,在master分支发布1.0版本;你和你的小伙伴们每个人都在dev分支上干活,
每个人都有自己的分支,时不时地往dev分支上合并就可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值