熟悉git的基本用法
来源:互联网 发布:led 知乎 编辑:程序博客网 时间:2024/05/21 08:47
Git
Git 创建版本库
首先创建一个目录 mygit并进入,然后创建一个仓库。
创建一个仓库:git init
该命令会在目录下生成一个 .git 目录,该目录是隐藏的,使用 ls -ah 查看
Git添加文件到仓库
把一个文件放到仓库需要2步
① git add fileName.xxx
② git commit -m “本次提交说明”
查看仓库状态 git status
本地和仓库是一致的显示working directory clean
修改了mygit.txt文件后
添加到缓存区 git add之后
使用git diff 文件名查看文件的不同
使用 git difftool 查看文件的不同,会调用出比对工具
Git 版本回退
Git 一个commit就是一个快照,一旦出了问题可以进行回退。
显示提交记录 git log,可以看到刚才的提交记录
如果嫌信息太多,可以显示简要信息 git log --pretty=online
把当前版本回退到上一个版本为 git reset --hard HEAD^
如果想再回到未来的版本,窗口没有关闭的情况下,可以找到那个版本的id号,然后就可以回去 git reset --hard id号
如果电脑关闭了,想恢复到新版本,找不到 新版本的commit id
Git提供一个命令可以用于记录你的每一次命令 git reflog 就可以在这找到新版本的commit id了
工作区和暂存区
初始化一个git仓库时,git为我们自动创建第一个master分支,以及指向这个master分支的指针HEAD
Stage表示暂存区
Git通过git add命令把文件从工作区添加到暂存区。
Git 通过 git commit提交更改,是把暂存区的内容提交到当前分支。
查看工作区文件和最新版本库的区别 git diff HEAD -- 文件名(工作区)
撤销工作区的修改 git checkout -- fileName.xxx 可以把工作区的修改全部撤销
这里撤销修改分为两种,
一种是工作区修改了,直接git checkout -- fileName.xxx回到和版本库一致。
另一种是已添加到暂存区又做了修改,撤销就回到了添加到暂存区的状态。
撤销暂存区的修改: git reset HEAD fileName.xxx 回到了工作区修改状态。
如果从暂存区提交到了版本库,可以使用 git reset id号回退。如果推送到了远程就没有办法了。
删除一个文件 git rm fileNmae.xxx
恢复删除的文件 git reset HEAD filename.xxx git checkout -- filename.xxx
创建远程仓库(这里注册一个gitHub账号)
①首先创建一个repositories名字为mygit
②关联本地仓库和远程仓库,在根目录下执行,这里需要把CoderMengLi换成你自己的gitHub用户名。
git remote add origin git@github.com:CoderMengLi/gittest.git
③把本地库推送到远程
Git push -u origin master
由于远程仓库是空的,第一次推送master分支时,加上了-u参数,git不但会把本地master分支内容推送到远程分支,还会把本地master分支和远程的master分支关联起来。
现在只要本地做了修改,就可以通过命令
Git push origin master 提交
克隆代码
可以使用 SSH 或HTTP两种方式克隆代码。
Git clone git@github.com:CoderMengLi/mygit.git
Git clone https://github.com/CoderMengLi/mygit.git
Git默认的是使用ssh,使用https除了慢以外,最大的麻烦是每次都必须输入口令。
分支管理
Git中的主分支叫master分支,master指针指向提交,HEAD指针是指向当前分支。
当我们创建新的分支,如dev时,git新建了一个指针叫dev,指向和master相同的提交,再把HEAD指向dev,表示当前分支在dev上
从现在开始对工作区的修改和提交就是针对dev分支进行,如新提交一次后,dev指针往前移动一步,而master指针不变。
当dev上的工作完成了,就可以把dev合并到master,合并就是把master指向dev的当前提交,就完成了合并。
合并分支 git merge 指定分支 把指定分支合并到当前分支。
合并完成后,删除dev分支,就是删除这个指针git branch -d 分支名
Git checkout -b 分支名 相当于下面两条命令
Git branch 分支名
Git checkout 分支名
解决冲突
两个分支合并时可能会产生冲突,比如两个分支都修改了同一个文件,则需要手动解决冲突,然后再次提交。
查看分支合并情况 git log --graph --pretty=oneline --abbrev-commit
查看提交 git log --pretty=oneline --abbrev-commit
合并分支时,git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息,如果要强制禁用Fast forward模式,git就会在merge时生成一个新的commit,这样从分支历史上就能看到这条分支信息。
git merge --no-ff -m "merge with no-ff" 分支名
因为这次合并要创建一个新的提交,所以加上-m参数,输入提交信息。
不用Fast forward的示意图是这样的
使用Fast Forward合并策略是这样的
禁用 Fast Forward后的分支合并情况
Bug分支
每个bug可以通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除。
如果你新建了一个bug分支,issue修复bug,但是现在在dev上的工作还没有提交,可以使用git stash缓存工作现场。
查看缓存情况 git stash list
弹出缓存 git stash pop stash@{0}
这里这个分支如果不提交就无法切换分支,所以必须使用git stash 保存状态,再创建bug分支去更改提交。
如果使用git stash apply 恢复,恢复后stash里的内容还没有删除,需要使用git stash drop来删除。
查看远程库信息 ,使用 git remote
查看远程库信息,使用git remote -v
设置本地分支和远程分支对应git branch --set-upstream dev remotes/origin/dev
标签管理
发布一个版本时,通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本。
打标签 git tag v1.0
可以在指定提交id处打标签git tag v1.1 id号
显示tag信息 git show tag名
显示所有tag git tag
创建带有说明的标签 git tag -a v1.2 -m “version1.2” id号
如果标签打错了,也可以删除标签 git tag -d tag名
把标签推送到远程 git push origin v1.0
一次性推送 git push origin --tags
删除远程标签
① 先删除本地 git tag -d v0.1
② 再删除远程,删除语句是push git push origin :refs/tags/v0.1
SecureCRT上颜色的设置有利于git status查看
有时我们在操作git时候,比如我们 运用git branch查看分支的时候,或者是运用git diff查看修改变化差异时候,git status查看状态时 我们看到的效果全部都是同一个颜色,不得于我们查看文件。
如果当我们在 ~user/.gitconfig下面添加如下配置:
[color]
branch = auto 针对于git branch显示的结果
status = auto 针对于git status显示的结果
diff = auto 针对于git diff显示的结果
log = auto 针对于git log 显示的结果
通过以上设置,我们的git命令得到的结果就比较利于查看了
等价于
git config --global color.diff auto //git diff要显示的颜色
git config --global color.status auto //git status 要显示的颜色
git config --global color.branch auto //git branch 要显示的颜色
git config --global color.log auto //git log 要显示的颜色
一条最简单的命令就是
git config --global color.ui true
查看git设置
git config --list
如果查看global的设置,用下面的命令:
git config --global --list
删除设置
我们可以直接编辑文件,也可以用类似下面的命令
git config--unset --global user.name
在SecureCRT上颜色的设置步骤如下:
Options-->Session Options-->Terminal-->Emulation
Terminal:Xterm ANSI Color Use color scheme选中
之后,git log git status git log git diff
颜色就有变化
- 熟悉git的基本用法
- 一图熟悉Git的基本操作
- git的基本用法
- git的基本用法
- git的基本用法
- git 的基本用法
- git的基本用法
- git的基本用法
- Git的基本用法
- git的基本用法
- Git的基本用法
- git 的基本命令用法
- Git 的一些基本用法
- GIT 的最基本用法
- Git最基本的用法
- git的最基本用法
- git的一些基本用法
- 15 分钟内熟悉 Git 基本操作
- C与C++函数声明时的几个小的语法差异
- php swoole拓展开启
- Linux下安装JDK
- spring中MessageSource的配置使用方法--ResourceBundleMessageSource
- part1.Linux内核源代码的目录概览
- 熟悉git的基本用法
- 双击退出Activity
- 模式识别(Pattern Recognition)学习笔记(二十)--BP算法
- superwebbench
- php 测试异步回调是否执行
- Intent之resolveActivity() 防止APP崩溃
- Android内存优化大全(二)
- 操控女主播“翻床” 王思聪新节目
- 关于深度学习的一些整理