6168b1bf6a363051b1dee4a6fd19be91.png

学习网址强烈推荐!!!

简介

目前世界上最先进的分布式版本控制系统,在处理文件,可以看到处理文件各个过程.即记录每次文件的改动.

还有git也是Linux写出来,对就是写成Linux的那个Linux.

关于分布式和集中式控制系统!大家自行百度

安装

本人是windows,

  1. 首先下载安装程序
  2. 开始菜单中有Git->Git Bash,跳出窗口,安装成功
  3. 输入命令行

bash $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"

完成

创建版本库

创建仓库:

想要变成仓库的文件下,打开git bash输入git init

文件添加仓库:

告诉仓库我加了什么git add <文件名>

再提交git commit -m <解释说明这次提交的意义>

查看仓库状态

git status查看仓库的状态,那些文件被修改过

git diff可以查看修改内容

版本回退

每次更改文件就是一个版本

git log参看历史版本

git reset --hard 版本id或者(HEAD^代表上个版本),在版本间更换

git reflog参看未来版本

工作区和暂存区

工作区:就是我们创建那个仓库(文件夹)

暂存区:需要提交的文件通通放在暂存区,然后,一次性提交暂存区的所有修改,就是git status那时候状态.

如果不添加到暂存区(add),不能提交commit

撤销修改

  1. 打乱工作区,直接丢弃工作区修改 git checkout -- file
  2. 打乱了工作区,还添加到暂存区,首先,git reset HEAD <文件名>,在回到场景一,即git checkout -- file
  3. 修改版本,需要版本回退. git reset --hard commit_id

删除文件

git rm删除一个文件

远程仓库

众所周知就是GitHub了,

添加SSH Key ,详细操作自行百度.

添加远程库

关联一个远程库:git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容

每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

从远程库克隆

知道仓库的地址,使用git clone,可以使用多种协议,包括https,但通过ssh支持的原生git协议速度最快

分支管理

创建与合并分支

参看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

解决冲突

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

git log --graph命令可以看到分支合并图。--pretty=oneline --abbrev-commit可添加,是图看到更清晰.

分支管理策略

Git分支十分强大,在团队开发中应该充分应用。

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

bug 分支

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

Feature 分支

开发一个新feature,最好新建一个分支;

如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。

多人协作

查看远程库信息,使用git remote -v

本地新建的分支如果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

标签管理

版本号v1.0

创建标签

命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;

命令git tag可以查看所有标签。

操作标签

命令git push origin <tagname>可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d <tagname>可以删除一个本地标签;

命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

Logo

更多推荐