git操作总结

git简述:就是一个分布式的版本控制管理工具。
集中式:通俗来讲啊就是秉承“用一次拿一次,还得在联网的情况下”
分布式:就是每台电脑都是一个完整的版本库,可以提交到自己的电脑上,并且不需要联网。

备注:

  1. 所有的版本控制工具都是跟踪文件的改动(txt文件,php等源码文件),而图片视频等二进制文件无法跟踪。(例如word文档也是二进制不能进行追踪修改的内容)。
  2. 所有文本都是有编码(GBK,shift_JIS等)(注释:推荐使用UTF-8)。
  3. 在文件中.get文件是git的版本库。

git 提交

git init(可以将目录转为git可管理的仓库)
git status(查看状态)
git add .(readme.md)(添加文件到git版本库中的暂存区)
git status(查看状态)
git commit -m "comment msg" (提交到版本库中)
git push(提交到远程的仓库中)

git 版本回退

git diff readme.txt (查看修改内容)
git log (查看提交的历史记录,由最新到最久,回到过去的版本)
git log --pretty=oneline(和git命令一样,只是这个命令可以显示成一行,方便查看。格式为commit id  comment msg)
git reset --hard head^(^这个符号表示的是当前版本的上一个版本,^^就是当前版本的前俩个版本,如果很多的话可以写 head~100)
git reset --hard 1902a...(commit id)
git reflog (查看历史命令,回到未来的版本)

git工作区和版本库(暂存区+分支)

工作区:就是你电脑上的文件夹
暂存区:就是你使用git add . 的时候文件存储到的是暂存区
分支:git为我们自动创建的分支master,它的指向是HEAD

git checkout

git checkout -- file (丢弃工作区修改的内容,其中 -- 符号很重要,遗漏的话就是切换另一个分支的命令)
git reset Head file (将文件修改后存到暂存区,可以使用该命令回到工作区,然后使用git checkout -- file 操作)

git 删除

git rm file (删除一个文件,如果版本库和工作区不一致了,并且确定要删除,最后是用git commit 提交即可)
git checkout -- file (该情况是工作区误删之后,但是版本库里存在,可以使用该命令还原工作区)

git 远程库

origin 就是远程库
git push -u origin master (本地库与远程库做关联,并提交,-u 就是本地与远程库的关联,以后提交可以不需要添加 -u)
git remote -v (查看远程库信息)
git remote rm (远程库删除,其实本质是解除本地与远程仓库的关系)

git 克隆

git clone address (从远程仓库克隆到本地库中,git 支持多种协议,但是ssh协议的速度最快)

git 分支

git branch 查看分支
git branch (name) 创建分支
git checkout (name) /git switch (name) 切换分支
git checkout -b (name)/git switch -c (name) 创建分支并切换到当前分支
git merge (name) 合并某分支到当前分支
git branch -d (name) 删除分支

git冲突

首先手动解决冲突,然后提交,最后合并
git log --graph 可以看到分支合并图
git merge --no -ff -m "comment" dev (普通模式合并,合并后的历史有分支,能看出来曾经做过合并)

bug分支(看廖老师的网站)

修复bug 会通过创建新的bug分支进行修复,然后合并,最后删除。
git stash 可以将当前现场储藏起来,然后回复继续工作(当手头工作没有完成时候,可以使用)
git stash pop 回到工作现场
git cherry-pick <commit>(把在别的分支上修改的bug复制到当前分支,避免重复劳动)

feature 分支

开发一个新的公共feature ,最好新建一个分支
git branch -d (name) (如果要丢弃一个没有合并过的分支,可以通过该命令强制删除)

多人协作工作模式

git push origin (branch-name) 推送自己的修改到远程分支
git pull  下拉远程最新代码。
git push origin (branch-name) 推送代码到远程分支
git branch --set-upstream-to (branch-name) origin/(branch-name)   (家里本地分支和远程分支的关联)

rebase

rebase操作可以把本地未push的分叉提交历史整理成直线

.gitignore 忽略文件

在工作区目录下创建一个特殊的文件.gitignore文件,并上传到git版本库中
*.class文件 表示 文件为.class为后缀的都在操作的时候被忽略不上传
.* 表示以 .开头的文件不被上传
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值