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 "tengseng@163.com" 生成公钥和私钥
公钥相当于锁,私钥相当于钥匙,这个锁只有这把钥匙能打开
连接gitbub,将公钥放在github上
ssh git@github.com 测试连接
乌龟git使用专用的私有key,可以使用自动转换工具生成
克隆远程仓库
git clone 仓库URL:默认情况下自动创建了本地的master分支用于跟踪远程仓库中的master分支,打开项目文件夹.gitconfig文件可以看到master分支和远程仓库master分支的关联
远程分支可以理解为在远程仓库上文件快照的指针,其实和本地分支是一样的,不过这些分支是在远程仓库上,远程分支名用(远程仓库名/分支名)形式表示
git remote -v 查看远程仓库
git branch -vv查看本地分支与远程分支的联系
git branch -r 查看远程分支
git push -u [remote-name] [本地推送的分支名]
git push -u [remote-name] [本地推送的分支名:远程分支名]
git push -u git@github.com: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 git@github.com:peihongpeng/html02.git  git push -u origin master

搭建git服务器
权限:远程的主分支上的代码只能由管理员合并修改,不影响普通用户自己的本地分支
发送合并请求
先合并到develop分支,测试通过后合并到master分支
原文地址:https://www.cnblogs.com/dapeng520/p/4573903.html