git版本管理工具

来源:互联网 发布:安卓 弱网络模拟 编辑:程序博客网 时间:2024/05/07 21:31

声明:仅作为学习记录使用,方便以后查看复习。如果有错误欢迎指正。

Git 使用

安装git,创建仓库
git config –gloable user.name liubo
git config –gloable user.email liubo@digiproto.com
或者.git目录下的config文件中添加
[user]
gitconfig的配置参考: http://www.cnblogs.com/wanqieddy/archive/2012/08/03/2621027.html

github的使用参考: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000
本地仓库和github仓库通过ssh加密
1 创建ssh key
ssh-keygen -t rsa -C “tyut_lb@163.com”
在/home/liubo/.ssh/id_rsa默认有这个,id_rsa是私钥,id_rsa.pub是公钥
2 git clone git@github.com:woniuhaha/GitTest.git clonegithub的GitTest仓库到本地。

创建一个文件夹用作仓库
git init
git –bare init 有待研究????
参考: http://blog.csdn.net/ljchlx/article/details/21805231

添加文件到仓库
git add filename
git commit -m “create filename”
git status 状态,有提示怎么做(想一想工作区,暂存区,版本库 之间的关系)
git checkout – filename  放弃工作区的修改
git reset HEAD filename  放弃暂存区的修改
git diff filename 什么时候都可以diff
git show 默认看最近的commit的信息
git show commitID  看这个id下的信息

git每一次commit串成一条线,HEAD指针指向当前节点。HEAD^是上一个节点,依次类推
返回上一个节点
git log 查看日志
git reset –hard HEAD^  21世纪返回到19世纪
git reflog  记录每一次的git命令
git reset –hard 146816  找到21世纪的commit id,从19世纪再返回到21世纪
git reset –soft HEAD^  据说—soft不会删除你退回去后的之后的commit信息,–hard会删除退回去后的commit信息,你就再也回不来了。但是可以通过git reflot 看到之前的操作,实际是可以从19世纪再回到21世纪的

git tag 每次发布一个版本打一个tag
git tag v1.0-light   轻量行tag
git tag -a v1.0 -m “1.0版本”  重型tag
参考: http://blog.csdn.net/wangjia55/article/details/8793577

删除文件
1 删除工作区的文件
rm filename 只是删除了工作区的文件,版本库中还有
git checkout – filename 从版本库中恢复到工作区
2 删除版本库文件
git rm filename

远程克隆版本库,支持不同协议
git clone ssh://git@192.168.0.116/opt/code
git clone git://git@192.168.0.116/opt/code
git clone http://192.168.0.116/opt/code

分支管理
master是默认创建的分支,master指针指向这个分支的最新commit的节点,HEAD指针
指向master指向的这个节点
创建一个分支dev,HEAD指向dev
git branch dev
git checkout dev
或者
git checkout -b dev 创建带切换
git branch -a 查看所有分支,包括远程和本地
git branch -r 查看远程分支

git 开发模式????

合并分支
在master分支上合并dev分支
git merge dev 快速合并dev到master
git branch -d dev 删除dev分支
如果分支没有合并就要删除,会提示删除失败,强制删除
git branch -D dev

分支管理
在dev分支上正在工作,保存当前分支工作
git stash
git status
git stash list 看保存了几个列表
切换到master分支,再开出一个分支修改bug,然后合并bug分支到master
切换到dev分支,再继续工作
git status
git stash pop 恢复工作现场并删除stash列表中的内容
或者
git stash apply 恢复现场
git stash drop 删除stash
多次stash,选择一个恢复
git stash apply stash@{0}

远程分支
git remote 看远程分支
git remote -v 详细看远程分支
推送分支到远程分支
git push
参考: http://www.yiibai.com/git/git_push.html
http://blog.csdn.net/wh_19910525/article/details/7438183
抓取远程分支
git checkout -b dev origin/dev 从远程的dev抓到本地的dev

多人合作
git push origin dev 推送本地到远程分支失败
git pull 失败,因为没有指定本地的dev与远程的dev链接
git branch –set-upstream dev origin/dev
git pull 成功,但是合并冲突
解决冲突再push

git patch补丁功能
制作patch的方法
1 git diff 生成标准的patch
git diff master > test.patch 和master分支比较生成补丁
开一个新分支用来打补丁,避免破坏master分支
git apply patch 打补丁
git commit -a -m “patch apply”
2  git format-patch生成专用补丁
git format-patch -M master 和master分支对比生成patch
git am 0003-xx.patch 打补丁

0 0
原创粉丝点击