博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GIT
阅读量:5734 次
发布时间:2019-06-18

本文共 5187 字,大约阅读时间需要 17 分钟。

基本概念

git: 工具,版本控制

github:网站,社交平台,开源项目,远程仓库

配置

git config --list: 设置贡献者和查看所有配置项

设置贡献者

设置:name,email

git config --global  user.name     // 例如:git config --global user.name "smiel"git config --global  user.email    // 例如:git config --global user.erail "1129507496@qq.com"
查看配置项
git config --list: 查看所有配置项

修改别名:

执行: `git unstage`配置: `git config --global alias.unstage "reset HEAD"`

GIT三个区

  • 工作区
  • 暂存区
作用:作为过渡层避免误操作保护工作去和版本区分支处理
  • 版本区(库)

clipboard.png

GIT工具作用

  1. 从服务器上克隆完成的GIT仓库(包括代码和版本信息)到单机上。
  2. 在自己的机器上根据不同的开发目的,创建分支,修改代码。
  3. 在单机上自己创建的分支上提交代码。
  4. 在单机上合并分支。
  5. 把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
  6. 生成补丁(patch),把补丁发送给主开发者。
  7. 一般开发者之间解决冲突的方法,开发者之间可以使用pull命令解决冲突,解决完冲突之后再向主开发者提交.
GIT优点
  1. 适合分布式开发,强调个体。
  2. 公共服务器压力和数据量都不会太大。
  3. 速度快,灵活。
  4. 任意两个开发者之间可以很容易的解决冲突。
  5. 离线工作。
GIT缺点
  1. 学习周期相对而言比较长
  2. 不符合常规思维
  3. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息.

获取和创建项目

init

git init:将一个目录初始化为 Git 仓库

执行init命令之后,就有了一个GIT仓库的架子,可以开始项目开发,创建的新的GIT仓库里,任何时候,任何目录中任何操作,都是本地化。

clone

git clone url: 复制一个GIT仓库

git cloen https://github.com/vuejs/vue.git

复制该项目中的全部记录,本地拥有代码,并且该操作将拷贝该项目的主分支,能够查看代码,或编辑,修改。进入到该目录中,会看到.git子目录。所有的项目数据都存储该文件中.

基本操作

add

git add: 文件添加到暂存区

git add .git add [name]

status

git status -s: 查看在工作区和暂存区的状态

diff

git diff 工作区和暂存区的差异对比

git diff --cached(--staged) 暂存区和版本库的差异对比git diff master(分支名字):  分支之间的差异对比

commit

git commit 添加到版本库

git commit -m : 执行弹窗文本编辑,需要添加注释

git commit -a : 自动将提交前已经记录的,修改的文件放入缓存区.

git add 提交缓存的流程太过繁琐, 可以通过git commit -a 跳过git add .这一步。为任意已有记录的文件执行git add .

reset

git reset HEAD demo1.html 撤回提交到暂存区的文件

git reset --hard commit_id 对版本还原    HEAD^    HEAD~
git checkout --hard a7git reset --hard HEAD^ 往回走一个版本git reset --hard HEAD~2 往回走两个版本

clipboard.png

clipboard.png

撤销:

git reset HEAD 
撤销到暂存区 git reset HEAD drag.jsgit checkout --
把暂存区还原到工作区 git checkout -- drag.jsgit commit --amend 撤销到暂存区 git commit -m "change drag.js" --amend

恢复 :

git checkout commit_id 
对文件的还原git checkout a7e8623 drag.js

rm

git rm 删除

git rm 会将文件从缓存区中移除。这与git reset HEAD 将文件从取消缓存是有区别的,“取消缓存”的意思是将缓存去恢复为做出修改之前的样子。 git rm 则将该文件测底从缓存去踢出,因此不会有log日志,删除了文件.

执行git rm 来删除GIT追踪的文件。还会删除工作目录中的相应文件.

git rm 
删除暂存区的文件[手动删除工作区的文件,才可以使用] git rm test.txtgit rm -f
直接删除暂存区的文件. 工作区的文件也删除 git rm -f test.txtgit rm 0f --cached
只删除暂存区的文件,工作区的文件保留. git rm --cached test.txt

分支与合并

branch

git branch 创建分支

git branch 
创建分支git branch 查看分支

git branch 查看分支    -d    --merged    --no-merged    git branch --merged  查看mster分支所合并的分支git branch --no-merged 查看没值合并的分支git branch -d new1 删除分支

checkout

git checkout 切换分支

git checkout 切换分支    -b    git checkout new1 git checkout -b new2  // 创建new2分支,直接把创建的当作主分支

merge

git merge 合并分支

修改分支冲突:一旦发生冲突,手动进行修改.

clipboard.png

git diff master origin/master 查看远端和工作区的区别git merge origin/master 合并代码,然后手动选择git pull 直接合并文件,少掉 diff和merge 的步骤 // 把远端的直接合并到master上.git fetch 一般情况下使用这个,可以查看出现问题的原因.

tag

git tag 给历史记录中某个重要的一点打上标签

git tag -a v1.0

git tag // 查看git tag v1.0 // 创建标签git push origin v1.0 // 同步到github

查看标签在日志中的信息

git log --oneline --decorate --graph

mv

git mv 移动或重命名

git mv file_old file_new
mv file_old file_new

info : 执行info指令,查询指令相关信息,会要求您输入欲查询的名称。cat : 执行cat指令,列出文件内容。gitview : 执行gitview指令,观看文件内容。vi : 执行vi指令,编辑文件内容。cp : 执行cp指令,复制文件或目录,会要求您输入目标文件或目录。mv : 执行mv指令,移动文件或目录,或是更改其名称,会要求您输入目标文件或目录。mkdir : 执行mkdir指令,建立目录。rm : 执行rm指令,删除文件或目录。make : 执行make指令,批处理执行指令或编译程序时,会要求您输入相关命令。git : 离开git文件管理员。

更新项目

remote

git remote 查看,添加和删除远端仓库

git remote     -v    origin git remote origin 远程仓库名字git remote -v 查看到仓库对于远程的地址

git remote add 项目添加一个新的远端仓库

git remote add [alias] [url]

git remote rm 删除现存的某个别名

git remote rm [alias]

fetch

git fetch 从远端仓库下载新分支与数据

git fetch [alias] 将仓库与远端仓库同步,提取所有它独有的数据到本地分支以合并或怎样。

pull

git pull 从远端仓库提取数据并尝试合并到当前分支

该命令是在git fetch之后紧接着 git merge 远端分支到你所在的任意分支。

push

git push 本地改动推送到远端仓库

git push [alias] [branch] // 仓库名字,分支.

检查与比较

log

git log 显示一个分支中提交的更改记录.

需要了解当执行git commit以存储一个日志的时候,都有什么信息被保存了。除了文件详单提交信息,和提交者的信息,Git还保存了此次提交所基于的日志信息。

git log --oneline 查看历史记录的紧凑简洁的版本.

git log --oneline --graph 查看历史中什么时候出现分支,合并,展示拓扑图.

git log --oneline master 查看特殊分支的日志信息

git log --author

git log --author 寻找某个特定的作者的提交

git log --author=v_linxingzhang --oneline -5
git log --since --before
git log --oneline --before={3.weeks.ago} --after={2017-01-06} --no-merges
git log -p

git log -p 显示每个提交引入的补丁

git log -p -2
git log --stat

git log --stat 显示每个提交引入的改动的差值统计

如果-p 选项太过详细,可以用--stat 总结改动。 使用--stat选项时,同一份日志的输出。

git log 远程分支 origin/本地分支
> git log dev origin/dev

查看全部日志信息,包括本地没有更新远程信息.

diff

git diff 对比

git diff [version]

git diff 工作区和暂存区的差异对比git diff --cached(--staged) 暂存区和版本库的差异对比git diff master     git diff 分支名字
git diff --stat

比较两个不同的分支,类似执行git diff branchA branchB的命令

git diff --stat master dev

比较两个不同的分支,指定分支.

使用git diff 查看某一分支自它偏离出来起与过去某一点之间项目的改动。 总是使用git diff branchA ... branchB来查看branchBbranchA的相对差值.

其它

git stash 将文件给push 到一个回收站中

git stash pop 将文件给pop到一个回收站中
git stash drop 将放入回收站的文件删除
git push origin 本地分支名字:远程分支名字 本地分支添加到远程分支

git push --set-upstream origin master -f 和远程分支建立关联+ 强制推本地文件

git push origin :origin/master 删除远程分支需要加:

git checkout -b dev origin/dev 以远程分支创建本地分支

git checkout -m 旧分支名字 新分支名字 分支修改名字
git checkout -b <本地分支名> origin/<远程分支名>,git checkout -b v4.0 origin/v4.0 获取远程存在分支,本地不存在分支。
git cherry-pick <commit id> 对已经存在的commit进行再次提交.(不同版本,不同分支)

转载地址:http://ewwzx.baihongyu.com/

你可能感兴趣的文章
css 默认不显示 之后显示
查看>>
我的友情链接
查看>>
DNS显性+隐性URL转发原理
查看>>
我的友情链接
查看>>
网易有道 IP地址、手机号码归属地和身份证 查询接口API
查看>>
鼠标停留在GridView某一行时行的颜色改变
查看>>
系列3:WAS Liberty Profile hello mysql jdbc
查看>>
基础知识:python模块的导入
查看>>
Android MVC之我的实现
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
关于批处理-1
查看>>
Tomcat部署Web应用方法总结
查看>>
Python3 django2.0 字段加密 解密 AES
查看>>
CCNA实验之:网络地址转换(NAT)实验
查看>>
计算机网络原理笔记-停止等待协议
查看>>
确定当前记录和下一条记录之间相差的天数
查看>>
sql语句返回主键SCOPE_IDENTITY()
查看>>
机器学习开源项目精选TOP30
查看>>
代码分析系列 内存执行过程
查看>>