GIT

git config --global user.name "" 

git config --global user.email ""

git help config

mkdir mysite

cd mysite

git init(初始化版本控制) 

git add index.html(让git来跟踪它,提交到暂存区)

git add *.html

进入目录,使用tugit,create add 

git commit -m ""(跟踪好的文件提交到版本库中)

git commit -am ""

git log

git status(查看文件状态)

git基本概念:

index/staging erea:暂存区

work area:工作区

修改暂存的文件:git status有两个状态,第一个提示在暂存区,没有提交,第二个提示,没有提交到暂存区

git add命令作用:

1.可以让git开始跟踪文件并且提交到暂存区

2.已跟踪的文件放到缓存区

3.还能用于合并时把有冲突的文件标记为已解决状态

git原理:每次保存某一时刻文件夹下的所有文件的快照,svn保存文件差异

git分支:本质上仅仅是个指向commit对象的可变指针

git branch testing,创建分支testing,testing现在指向了最新的版本,现在切换到testing分支工作,testing分支指向的最新的快照,master指向的还是原来的。svn分支是通过复制文件的形式,git分支通过指针实现。

git保存了一个head的指针,指向了当前正在工作的分支

git branch显示分支信息

git checkout testing

git checkout -b iss53创建切换

分支上修改的内容没有提交时git不允许切换,如果需要不提交时切换,可通过stash

在master分支上合并分支,合并分支,将指针移动(fast-forward)或者寻找共同的祖先自动合并(auto merging)

git merge hotfix

git branch -d hotfix:删除分支hotfix

合并分支冲突:两个分支有相同的文件,相同文件的同一个位置,有不同的内容,合并就会产生冲突

git merge iss53后,修改冲突地方,然后git add index.html,git commit -m "分支冲突已经解决"

git stash分支工作到一半,不想提交,又要切换到别的分支上工作,使用git stash

git stash list 查看隐藏状态的列表

git stash apply 储藏的名字:回到原来的分支之后

git服务器:多人协同开发。有bitbucket.org(私有仓库免费) github.com

协议就是一套规则

git服务器支持多种协议,git协议最快

ssh-keygen -t rsa -C "[email protected]" 生成公钥和私钥

公钥相当于锁,私钥相当于钥匙,这个锁只有这把钥匙能打开

连接gitbub,将公钥放在github上

ssh [email protected] 测试连接

乌龟git使用专用的私有key,可以使用自动转换工具生成

克隆远程仓库

git clone 仓库URL:默认情况下自动创建了本地的master分支用于跟踪远程仓库中的master分支,打开项目文件夹\.git\config文件可以看到master分支和远程仓库master分支的关联

远程分支可以理解为在远程仓库上文件快照的指针,其实和本地分支是一样的,不过这些分支是在远程仓库上,远程分支名用(远程仓库名/分支名)形式表示

git remote -v 查看远程仓库

git branch -vv查看本地分支与远程分支的联系

git branch -r 查看远程分支

git push -u [remote-name] [本地推送的分支名]

git push -u [remote-name] [本地推送的分支名:远程分支名]

git push -u [email protected]:peihongpeng/testHTML.git master

git push -u origin master  origin在config文件中配置的

git push -u [远程仓库名romote-name] -all 推送本地仓库的所有分支到远程仓库上

git fetch 远程仓库名  从远程仓库获取数据,对没有对工作区产生任何影响. 不是以本地分支存在,而是保存在.git/refs/heads之外(.git/refs/remotes/origin)的远程分支。

git merge 远程仓库名/分支名 把获取到的数据合并  git merge origin/master 

合并冲突后需要人工解决,打开文件,修改

git pull相当于git fetch  git merge

模拟多人操作:在多个文件夹下模拟

本地仓库与远程仓库连接:git remote add origin [email protected]:peihongpeng/html02.git  git push -u origin master



搭建git服务器

权限:远程的主分支上的代码只能由管理员合并修改,不影响普通用户自己的本地分支

发送合并请求

先合并到develop分支,测试通过后合并到master分支

 

你可能感兴趣的:(git)