的笔记

随时随地编辑

Git日常操作

mingw命令行操作

插入模式:i

命令模式:":"

保存退出:wq

 

日常操作

提交当前目录下所有修改
set MSG="Auto Sync "%date:~0,10%-%TIME:~0,8%
git commit -a -m %MSG%
git push

将当前内容创建为分支:git branch xxx;git checkout xxx;git push --set-upstream origin xxx

显示所有git命令
git

查看某个git命令的帮助,例如查看commit
git commit -h

丢弃最近一次的commit
git reset —soft HEAD~1
当commit后发现与远程库冲突,可以使用

查看当前仓库对应的远程仓库地址
git remote -v

查看当前提交状态
git status

丢弃所有
git reset -q —hard HEAD

添加文件
git add -f — filepath1 filepath2

Commit文件
git commit -q —author “user“

Push
git push -v origin master:master

重定向远程地址:
git remote set-url origin https://github.com/USERNAME/REPOSITORY.git



查看

查看本地和远程仓库分支

git branch -a

查看当前仓库对应的远程仓库地址

git remote -v

查看当前提交状态

git status

查看远程仓库信息

git remote show origin

查看命令用法

git help



提交操作

回退提交

  • git reset —soft HEAD~1

创建一个叫做“feature_x”的分支,并切换过去

git checkout -b feature_x

切换回主分支:

git checkout master

再把新建的分支删掉:

git branch -d feature_x

除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:

git push origin

合并其他分支到你的当前分支(例如 master),执行:

git merge

标记为合并成功:

git add

在合并改动之前,你可以使用如下命令预览差异:

git diff

合并提交或改名

git commit amend

已提交进行合并(rebase)

git rebase -i

远端

添加远端

git remote add skynet

删除远端

git remote remove skynet

查看其他远端操作

git remote —help

删除标记

git tag -d v0.4.2

分支

查看分支

git branch

创建分支

git branch testing

切换分支

git checkout testing

删除分支:

git branch -d testing

合并

  • git checkout master
  • git merge iss53

解决冲突工具

git mergetool



子模块

添加子模块

git submodule add skynet

克隆一个带子模块的项目

先clone主工程
git clone git://github.com/schacon/myproject.git

然后初始化submodule
git submodule init

最后更新submodule,拉去数据
git submodule update

更新子模块
在子模块独立更新后,感知更新信息,每次主工程需要进场更新
git submodule update —init —recursive

查看谁最后变更了子模块
git log -1 skynet

Branch和Tag可以看成Name,Hash看成是Key



子工程的修改与提交

首先正常修改主工程和子工程。主工程与子工程要分别单独提交。

  • 首先注意子工程也需要切换到某个分支,例如checkout master
  • 首先更新代码
    git fetch origin
         git pull --no-commit origin master
         

—解决合并

  • 子工程正常提交

子工程提交后,主工程会产生一个与这个子工程相关的提交,用于将标记使用了子工程的某个sha-1快照。



删除清理

去除冗余文件
git clean

移除工作目录中所有未追踪的文件以及空的子目录
git clean -f -d

删除tag
git -c diff.mnemonicprefix=false -c core.quotepath=false tag -d 4.10.0-preview-3

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v origin :refs/tags/4.10.0-preview-3

查看tag
git tags

查看已删除的tag
git fsck —unreachable | grep tag

unreachable tag 01d3a20163991ce31a334bd8eddba434c09a4f24
unreachable tag 08bd03e6168b7c6bd4150f56cfd113ca50cd4219

恢复删除的tag
git update-ref refs/tags/4.13.0-release 01d3a20163991ce31a334bd8eddba434c09a4f24

查看key的name
git show key

比较

todo

冷僻

“-c”与”-C”
-C
-c name=value

知识点

想看上一次提交,你可以使用 HEAD^,意思是“HEAD 的父提交”
HEAD~ 和 HEAD^ 是等价的

名词

rebase 衍合
staged 暂存

提交大文件

提交大文件报错:
error: RPC failed; result=22, HTTP code = 411

设置提交文件大小上限(500MB)
git config http.postBuffer 524288000

posted on 2017-04-14 18:12 的笔记 阅读(524) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理