git

1)恢复文件

git checkout  -- filename 用暂存区的文件覆盖工作区的文件,git checkout -- .  没有

git checkout branch -- filename 用branch分支中的文件filename覆盖暂存区和工作区的文件 :没有commit

git checkou 汇总t 显示工作区、暂存区和HEAD区的差别


add   git reset --hard HEAD  放弃工作区和暂存区修改

git reset --soft HEAD 

git reset (--mixed) HEAD  放弃暂存区修改

git reset --hard HEAD~n(提交id)将工作区、暂存区和HEAD区恢复到上n次提交,不会产生冲突

2)历史

git log 查看历史提交

git relog查看历史命令

git branch 查看本地分支

git branch -a 查看远程分支


3)git冲突

场景:本地的修改未提交,下拉服务器端代码出现冲突:

a)暂存本地的修改

git stash 保存当前未提交的内容(工作区、暂存区)到git栈中,工作区恢复到上一次提交的版本

git pull

git stash pop


git diff :   working tree 和 index file

git diff HEAD:   working tree 和 commit

git diff --cached:  index file 和 commit


b)放弃本地的修改

git reset --hard HEAD

git pull


4)删除

git branch -r -d origin/branch-name  删除本地对远程分支的track

git push origin (空格):branch-name 将一个空分支推送到远程


5) 拉取带有module的分支

一、git clone --recursive git@git****;(git submodule add git@git***)

增加 .gitmodule文件,记录git文件目录以及在当前工程下的存储路径

二、git submodule init       

在.git/config目录下注册submodule信息(第一次拉取module是运行)

三、git submodule update

更新module信息(远程有新的更新或者切换分支时调用)

git submodule update只适用于当工程中.git/index中的快照改变时,根据当前的指向(commit  id)更新module代码;若模块有更新,但是工程中的快照没有改变,使用git submodule update并不能更新子module。此时:

1/ cd 子模块,主动拉取代码

2/ 进入主工程,git diff/git status发现工程快照检测到子模块有更新,提交相关代码到仓库

3/工程快照发生改变,使用git submodule update更新子模块代码


6) 删除子模块

一、$ git rm --cached [path]

二、编辑.gitmodules文件,将子模块的相关配置节点删除掉

三、编辑.git/config文件,将子模块的相关配置节点删除掉

四、手动删除子模块残留的目录

7)detached HEAD

参考:http://www.jianshu.com/p/ae4857d2f868

游离head 和 分支是两个相对独立的概念,互不影响






阅读更多
想对作者说点什么? 我来说一句

git常用命令

2018年01月19日 16KB 下载

git 可视化工具

2017年12月05日 52.77MB 下载

Git Tutorial.pdf

2018年01月23日 3.38MB 下载

git代码管理

2017年09月15日 57B 下载

git可视化工具

2018年05月10日 11.58MB 下载

Git详解_Git详解

2015年06月02日 4.24MB 下载

Linux操作

2018年03月21日 815B 下载

Git 指南 ~~~~

2018年04月20日 4.48MB 下载

git常用操作

2018年04月28日 499B 下载

没有更多推荐了,返回首页

不良信息举报

git

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭