git 使用
git 初步使用
在工作目录下我们初始化新的仓库
git init
说明:将这个项目使用git进行管理,通过这样的方式。这个时候,类似于我们创建了一个项目,同时我们新加了一些很多的文件。
git add *.c
add 命令将文件加入到git 的管理中。类似于加入到暂存区中。
git commit -m 'initial project version'
提交代码到版本库中。
git clone git://github.com/schaon/grit.git
从远程将代码下载下来
整体的说明
我们的代码通过add,remove的方法指定是否需要追踪。通过commit 将暂存区中的修改过的数据加入到版本库中。
git status
校验当前文件的状态,哪些修改过后可以提交的。
git remote
用于查看远程仓库
-v命令显示对应的远程地址
git remote add [shortname] [url]
添加远程地址
git fetch [remote-name]
通过这个方法我们可以指定获取远程地址组中某一个地址的数据
git push origin master
格式:
git push [remote-name] [branch-name]
保证你的代码是最新的,不然会被驳回。
git remote show origin
显示远程仓库的信息
告知我们运行git push
的时候缺失的是什么
git remote rm [shortname]
和 git remote rename [shortname][new_name]
删除远程仓库
修改远程名称(在本地的名称)
git tag -a v1.4 -m 'this is V1.4 '
打上标签
git tag
显示所有标签
git show v1.4
:显示信息
分支
新加一个分支
git checkout -b iss
相当于
$ git branch iss
$ git checkout iss
分支的合并
$ git checkout master
$ git merge iss53
$ git branch -d iss53
管理
查看合并了的分支
git branch --merged
查看没有被合并的分支
git branch --no-merged
工作流程
2个思路
1. 稳定性,从稳定性弱的到稳定强的
2. 开启一个分支提供给开发,不会影响原来的主线开发
远程分支
表现形式:
(远程仓库名)/(分支名称)
推送本地的代码
git push (远程仓库名) (分支名)
如果你有一个分支serverfix需要和别人一起开发,那么我们通过
git push origin serverfix
协作者的操作,git fetch origin
跟踪远程分支
git checkout -b [分支名] [远程名]/[分支名]
可以使用git checkout --track [远程名]/[分支名]
简化操作。
删除原称分支
git push [远程名] :[分支名]
完成的push结构
git push [远程名] [本地分支]:[远程分支]
,那么解释上面的语法就是说,将本地一个空的分支推送给远程的分支,那么自然就会消失了啦。
分支的演变
merge
和rebase
语法
git rebase [主分支] [特性分支]
:意思是说找出分支上的共同点,然后将其在--into 的支线上重新演示一遍。
注意,不要演化已经放在公共仓库上的对象。为什么?
在进行衍合的时候,实际上抛弃了一些现存的提交对象而创造了一些类似但不同的新的提交对象。也就是说可能衍合一些提交的代码会被丢失掉,导致导致版本不正确。
服务器上的git
本地协议
git clone /opt/git/project.git
git clone file:///opt/git/project.git
有一个共享的文件系统,tfs之类的。只要设置文件夹的读写权限。
ssh()
最常见的协议。
git(9418)
http/s协议
将git 的仓库放置在web服务器的跟路径下即可。
部署git服务器
配置git
hook 的概念,通过hook 我们可以实现事件方面的实现。