git操作
第1章 本地仓库
第1节 git的特点
git在每台电脑上都有一个本地仓库,服务器上有一个共享版本库。
第2节 git的基本配置
【ls】该命令与linux相同
【git clone SSH克隆】如果报错,原因应该是没有配置公匙。
【公匙配置】codehub中的SSH Keys需要在个人资料中去寻找。
第3节 获取本地仓库
在文件夹下打开git,那么在git中就会进入该目录。执行git init命令就会初始化仓库,会生成三个隐藏文件。
第4节 git常用指令
- 除了.git文件,其它文件夹都被称为工作目录。
- git工作目录下对于文件的修改存在着几种状态。增加(未跟踪状态)——删除——更新(未暂存状态)。
- git分为3个区域,分为仓库、暂存区(说明了哪些文件被git管理着)、工作区(该区域的文件还没有被git管理)。
- git add指令用于将文件从工作区加入到暂存区。
- git commit -m "注释"指令用于将暂存区的文件加入到仓库。
- git status指令用于查看文件状态。
- git log指令用于查看日志。
- 提交到仓库后的文件,如果再次被修改,就会回到工作区的未暂存状态。
第5节 git分支
- 查看本地所有分支: git branch
- 创建本地分支: git branch 分支名
- 切换分支: git checkout 分支名
- 创建并切换到分支: git branch -b 分支名
- 把分支合并到master上: git merge 分支名
- 解决冲突:1-处理文件中冲突的地方;2-将解决完冲突的文件加入到暂存区;3-提交到仓库
第2章 远程仓库
连接远程仓库
一般来说,一个远程仓库对应一个本地仓库。那么本地仓库如何与远程仓库建立联系呢?远端名称一般命名为origin仓库路径:从服务器获取的url
git remote add <远端名称> <仓库路径>
查看远程仓库
git remote
push远程仓库
-f 本地和远端有冲突时强制覆盖(一般公司会禁掉此命令)--set -upstream 推送到远端的同时建立起和远端分支的关联关系,建立联系后可以省略该参数当前分支与远端分支建立联系后,可以省略分支名和远端名git push [-f] [--set -upstream] [远端名称(仓库名称)[本地分支] [:远端分支名]]
查看本地分支与远端分支的关联关系git branch --vv
git clone
如果不指定clone下来的文件名,那么默认为URL后面的名字。由于没有指定路径,那么默认clone在打开git的文件夹。如果指定了文件路径,会不会就clone在指定的文件夹?git clone <远端仓库URL> [clone下来的文件名]
fetch与pull
抓取只会获得远端仓库的更新,但不会与本地分支合并。如果不指定远端名称和分支名,则抓取所有分支git fetch [remote name] [branch name]
拉取会将远端更新抓取到本地并自动进行合并,等同于fetch+mergr如果不指定远端名称和分支名,则抓取所有分支并更新当前分支git pull [remote name] [branch name]
解决冲突
第3章 弃置
分支管理
【git status】查看状态。
【git branch】查看本地当前所在分支。【git branch -r】查看远端(remote)分支。【git branch -a】查看本地和远端分支。
【git checkout 分支名】切换到该分支【git checkout -b 目录】新建分支并切换你到该分支
【git merge 源分支 目标分支】合并两个分支。
提交管理
【git add 文件名】添加文件到暂存区【git add .】一次性提交多个文件到暂存区
【git commit -a -m "说明内容" 】一次性提交多个文件到本地仓库
【git push origin 分支(文件目录)】提交本地文件到服务器
日志管理
【git commi --amend】修改最后一次提交的文件的注释内容,该命令会进入vim。【git commit 文件名 -m "说明内容" 】提交文件到本地仓库
【git log】查看提交日志【git log --name-status】查看所有提交日志【git log -1】只显示最近一次log
其它
【diff 本地分支 远端分支】主要用来查看本地与远端分支的差异。根据提示,-表示这一版(第二个参数)跟上一版(第一个参数)比减少的行,+表示这一版跟上一版比增加的行。【git pull 分支名】从远端拉取分支到本地
【git reset --hard 节点编号】可以回退到对应的提交节点。但是这个操作比较危险,因为一旦执行,无需确认,就会丢失掉最新的节点。
【git checkout 文件名】将工作区的文件复原(相当于从暂存区复制文件过来覆盖掉修改后的文件)【git chenckout .】一次复原多个文件。
【git ferlog】查看文件是什么时候修改的。