git 使用记录

很久没有用git来提交代码了,特此开一个blog来记录常用的git使用命令与及错误处理方法(长期更新)

首先要使用git,如果是新手必看一下教程http://git-scm.com/book/zh

或者看一下大牛的blog

http://blog.csdn.net/ithomer/article/details/7529022


git跟svn一样,都是常用的版本管理工具


git很多命令都跟svn相似

比如add 、commit等等~~~


git初始化

git init
首先我新建一个文件夹


然后初始化


初始化后在本地代码库会自动创建一个.git隐藏文件,这个就是本地代码库
然后我把远程的代码库clone下来,类似svn的co命令

网站上什么都没有(我新建了一个版本库)

其实新建完了都有提示步骤的




我往clone下来的文件夹里面添加之前有的我写的一个MP3播放器的代码

接下来就是add了,惯性写成了svn add 了

应该是git add 的



正确的应该是:有一些warning,不用管



在然后就是commit了,跟svn的步骤一模一样



在然后就是上传到远程的服务器上面

在上传之前看一下这服务器的信息

git remote -v



再看一下代码的信息

git status


nothing to commit 说明全部都commit了

也可以设置短命令来代替status 

比如用st来代替status


其实这个东西是在~/.gitconfig这个文件里面设置的

直接git config --list可以查看这个文件里面的设置


看一下结果git st



同样的效果其他的也可以这样设置

例如:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch

言归正传:开始往服务器上放代码

git push  origin master



上传完毕之后就可以到刚刚的网页上看一下有没有传上来了

把刚刚的那个页面刷新一下


到此基本的一个流程就走完了~~

==============================我是分割线=========================================

然后就是git的分支了

git 查看分支

(本地) git branch

(远程) git branch -r 


(查看远程分支详情)git remote -v

(添加远程分支)git remote add 名字 路径

(删除远程分支)git remote remove 名字

其他help查看一下

git remote [-v | --verbose]

       gitremoteadd [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>

       gitremoterename <old> <new>

       gitremoteremove <name>

       gitremoteset-head <name> (-a | --auto | -d | --delete | <branch>)

       gitremoteset-branches [--add] <name> <branch>...

       gitremoteset-url [--push] <name> <newurl> [<oldurl>]

       gitremoteset-url--add [--push] <name> <newurl>

       gitremoteset-url--delete [--push] <name> <url>

       gitremote [-v | --verbose]show [-n] <name>...

       gitremoteprune [-n | --dry-run] <name>...

       gitremote [-v | --verbose]update [-p | --prune] [(<group> | <remote>)...]


====================================================================================================

git创建分支

    git branch 分支名

git 切换分支

    git checkout 分知名

上面两步可以合并成为一步

    git checkout -b 分支名


git 分支的合并,合并有两个命令 1、merge   2、rebase

这两个命令的结果是一样的,都是将不同分支的代码融合在一起,但是生成的代码树就稍微有些不同,merge的分支会比较乱

rebase之后就只有一个分支了


===================================================================================

git fetch 远程分支,

这里可以直接

       git fetch origin//会获取全部分支

       或者git fetch origin master //获取某个分支

这个时候远程分支下载到本地了,可以跟本地的分支进行对比

      git diff  master  origin/master //远程分支与本地分支(commit之后的)对比

如果对比得结果是自己想要的,就可以进行合并也就是merge,如果是合作开发的话,

每次开发之前都要进行这两步操作

     git merge origin/master  //在这之前,要先checkout 到本地的 master

     如果merge发生冲突,解决冲突之后,还要add和commit

...................................................................................................

如果非常确定那些代码被修改过了

可以使用git pull来代替上面的三个命令

==================================================================================

本地作出更改之后,即进行开发之后,可以提交的远程分支(!!!!注意这个是最后一步了)

就是使用上面的那个命令,

git push origin master    //当前是本地的master分支,初学者会注意不到

=================================================================================

日志查看

git log

常用的三个参数

git log --graph  //有图的形式

-git log -oneline //只显示精简信息

git log --all  //查看所有commit

================================================================================

压缩多个commit

当你提交代码进行代码审查时或者创建一次pull request (这在开源项目中经常发生),你的代码在被接受之前会被要求做一些变更。于是你进行了变更,并且直到下一次审查之前你没有再次被要求进行变更过。在你知道又要进行变更之前,你已经有了一些额外的commit。理想情况下,你可以用rebase命令把多个commit压缩成一个。

git rebase -i HEAD~[number_of_commits]

如合并后面两次

git rebase -i HEAD~2

这时候会要求你编辑commit信息

把不需要的在前面加上#表示注释,修改只留下一行没有的commit信息

================================================================================

git 忽略某个文件或者某些文件

其实就是在 项目的根目录下的  .gitignore 文件设置一些忽略规则

具体可以看一下这个链接

http://blog.csdn.net/liuqiaoyu080512/article/details/8648266

===============================================================================

git 的版本回退,主要是reset命令

命令为git reset --hard 版本号(这个号是某个版本前面的hash值)

HEAD 代表当前的版本号,上一个版本号可以用HEAD^来代替

上上个可以用HEAD^^,前面n个版本可以用“HEAD~数字来代替”

比如会到上上个版本可用

git reset --hard HEAD^^或者git reset --hard HEAD~2又或者git log 一下找到上上个版本的版本号然后git reset --hard 版本号

==============================================================================================

git 目录下有三个空间(注意都是本地的),1、工作区(你写代码的地方)2、stage暂存区(git add 之后会把改变的放在这里)3、版本库(git commit 之后会把改变添加到版本库)

这里要注意的是代码只有一份,暂存区和版本库存的是代码的改变(change)

所以可以用“git diff HEAD -- 路径"来查看工作区与版本库的某个文件的最新区别

也可以用”git checkout -- 路径“将工作区修改过的内容恢复到最近一次”git commit “或者”git add “ 的状态,注意add 如果add 过也是算的

注意这个"git checkout -- file"要有 ”--“,否则就跟那个创建分支的命令没有区别了,还有就是,这个命令是在没有不需要大面积修改的时候使用,如果大面积修改,使用的应该是git reset命令

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

=================================================================================================


 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值