<meta charset="utf-8">
掌握GIT代码版本控制和Team团队协作开发管理;
1、新建一个目录,
使用git init命令把这个目录变成Git可以管理的仓库,仓库建好了,空的仓库(empty Git repository),当前目录下多了一个.git的目录,如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见
把一个文件放到Git仓库只需要两步
第一步,用命令git add告诉Git,把文件添加到仓库: git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库:$ git commit -m "wrote a readme file"
git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件
git add 1.txt
git add 2.txt 3.txt
git commit -m "add three txt"
git status命令可以让我们时刻掌握仓库当前的状态
git diff查看被修改的信息,顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,
git log命令显示从最近到最远的提交日志如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:$ git log --pretty=oneline
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个比较容易数不过来,所以写成HEAD~100。
我们要把当前版本append GPL回退到上一个版本add distributed,就可以使用git reset命令:
git reset --hard HEAD^
在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令:git reflog
- HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。
- 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
[图片上传失败...(image-e17cc7-1567004386874)]
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
git reset HEAD readme.txt
git config user.name 'github用户名'
git config user.email '邮箱(meigkun@163.com)'
创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key : ssh-keygen -t rsa -C "youremail@example.com"
创建远程仓库:
在github上创建一个仓库,仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
使用命令关联: git remote add origin https://github.com/meigkun/weekly.git
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
git push -u origin master
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
从现在起,只要本地作了提交,就可以通过命令:git push origin master
git checkout命令加上-b参数表示创建并切换分支
git branch命令会列出所有分支,当前分支前面会标一个*号
git branch -d dev 删除dev分支
git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
用git log --graph命令可以看到分支合并图
要查看远程库的信息,用git remote 或者用 git remote -v显示更详细的信息
因此,多人协作的工作模式通常是这样:
- 首先,可以试图用git push origin <branch-name>推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>
1、自己的项目,整个流程、表结构、支付与安全、设计表述。
3.熟悉成熟技术框架如nginx、redis、mongodb、rabbitmq、kafka、swoole、elasticsearch等;
4.3年以上以PHP为主的中型或大型互联网产品软件的开发及维护工作经验;
5.熟悉缓存技术(memcache、redis),集群技术处理(mysql)、应用负载均衡(nginx)、系统性能调优(mysql优化、nginx优化)等技术,具有高并发平台开发经验优先(高并发处理方案);
网友评论