Git&Github
一.创建和管理版本库(本地仓库)
1.git init 初始化一个仓库
2.添加文件到git仓库
(1)git add <file> (将指定文件添加至stage(暂存区)) (2)git commit (-am " 修改信息") :-a (自动将所有修改过的文件添加至stage) (所以有了-a可以不用第一步) -m (“修改的描述信息”)
3.git status:被修改但没有提交的文件
4.git diff <filename> :查看文件具体被修改的内容
5 .git reset --hard HEAD^ :返回上一个版本(HEAD~100:返回前100个版本)
6.git reset --hard commit_id:返回指定版本
7.git log:查看提交历史(以便确定历史版本)
8.git reflog:查看命令历史(以便确定要回到未来哪个版本)
9.工作区和暂存区的概念:
(1)git add 实际就是把文件修改添加到stage (2)git commit 把stage的内容添加到master
git管理的是修改而不是文件(就算两次修改的是同一个文件,也要commit两次)
9.git checkout --<file> 直接丢弃工作区的修改
10.git reset HEAD <file> 丢弃stage中的文件
11.git remove<file>:删除版本库中的文件(比如你在工作区删除了,但是add到stage,就需要删除)
12.git checkout --<file>:你误删了工作区的某个文件,但是已经add到stage,就可以用该命令还原
二. 中央仓库
以上操作的都是本地仓库,git起到了版本控制的作用(每次commit都是一个版本),但它的分布式体现在哪了?这就需要中央仓库了(GitHub,码云(gitee))
1.关联本地仓库与中央仓库并上传文件到中央仓库:
(1)创建SSHkey(如果用户目录下有.ssh,无需创建)
(Git Bash下)ssh-keygen -t rsa -C "[email protected]"(-t rsa是密钥的类型(非对称加密))
操作完这个命令后会在用户目录下出现 .SSH目录,目录中有id_rsa(私钥,不能泄漏出去)
id_rsa.pub(公钥,可以告诉别人)
(2)把私钥告诉本地系统
ssh-add ~/.ssh/id_rsa
(3)查看私钥,复制私钥粘贴到码云/gitHub相应位置
cat ~/.ssh/id_rsa.pub
(4)本地仓库通过ssh与中央仓库关联:git remote add origin [email protected]:guoyancheng/mumall.gitt
(5)把本地的内容推送到中央仓库:git push -u origin master
(如果提示远程仓库已经存在:执行git remote rm origin)
(6)(从现在起,只要本地作了提交,就可以通过这条命令git push origin master)
2.从远程仓库克隆至本地
git clone [email protected]:michaelliao/gitskills.git
3.创建与合并分支
(1)git checkout -b dev 创建并切换到dev分支(相当于下面两条) (2)git branch dev 创建dev分支 (3)git checkout dev 切换到dev分支 (4)git branch 查看当前分支 (5)git merge dev 将指定分支合并到当前分支 (6)git branch -d dev 删除分支
三.分支管理策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
(1)master分支:应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
(2)dev分支:干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
(3)单独分支:你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。