技术

Scala shell内建指令 scala 最佳实践 centos 下安装sqlplus git简介及使用 Commands to Check Weblogic Server Status Spring 中 cache 的使用 pl/sql developer 相关问题 maven 用法 nexus docker 指南 oracle 相关问题 vim 快捷方式 media wiki 的搭建 安装 Kubernetes 如何的在centos中安装docker Hbase学习 hbase 异常解决 Docker 链接容器 dockerfile 最佳实践 centos 7 网卡配置 docker 学习笔记 guava 用法分享 docker命令行 angular小技巧 kubernetes 相关知识 一些windows下的工具 github 小技巧 angularjs 小技巧 java写代码的一些小技巧 lucene学习 在Windows上安装FishEye 快速安装eclipse插件 在fisheye中添加git repository Modbus 协议简介 读书笔记: angular性能调优 我的交叉编译经验谈 如何管理和配置opkg包 刷机失败后的恢复方法 Openwrt Flash Layout 分区调整 netgear wndr3700v4 刷新固件步骤 Openwrt应用包(package)编译 (基于Openwrt SDK) Openwrt编译 (基于Openwrt ImageBuilder) Build Openwrt环境完整过程 openwrt命令总结 在luci系统中增加服务 sftp 命令 系统完整性检查如何加载虚拟光驱 如何在java中启用jmxremote Bash Shell 技巧点滴 knockout和js测试基础 XAMPP 小技巧 knockout小技巧 有关discuz的资源与一些经验积累 javascript小技巧积累 在centos上安装jetty的过程记录 Vagrant构建虚拟开发环境 离线markdown编辑器:stackedit 关于阿里云服务器使用的几个小技巧 discuz被黑的处理办法 git 相关命令总结 BAE 本地开发环境调试笔记 yo 与 knockout 的使用 一些有用的在线工具网站资源 Discuz!X3.2 升级后无法登录后台的解决方法 knockout的一些有用的例子和资源 GoLang 学习笔记

标签


git 相关命令总结

2015年10月13日

第一次同步远程与本地

git push -u origin master

查看远程库信息

git remote -v

Git鼓励大量使用分支

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

创建远程origin的dev分支到本地

git checkout -b dev origin/dev

在dev上继续修改,然后,时不时地

把dev分支push到远程

git push origin dev

如果另一个也试图push到dev,就会失败,即使git pull也失败。 需要

设置dev和origin/dev的链接

git branch --set-upstream dev origin/dev

git pull

git pull成功,但是合并有冲突,需要手动解决,解决的方法和分支管理中的解决冲突完全一样。

解决后,

提交到分支

git push origin dev

因此,多人协作的工作模式通常是这样:

首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name

这就是多人协作的工作模式,一旦熟悉了,就非常简单。

当git add -A后,如何恢复add的操作?

git reset

当添加新的ignore 后,如何将远程ignore的文件(夹)删除?

git rm -r --cached some-directory
git commit -m 'Remove the now ignored directory "some-directory"'
git push origin master

当git commit 后,如何恢复commit的操作?

git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2010 -0400

blah blah blah...

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2010 -0400

more blah blah blah...

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2010 -0400

And yet more blah blah...

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2010 -0400

Yep, more blah blah.

然后

git checkout 0d1d7fc32

可参考: http://stackoverflow.com/questions/4114095/revert-to-a-previous-git-commit

Git 克隆指定分支(master)

git clone git@github.com:name/app.git -b master

Git 切换到其它分支(develop)

git checkout develop

Git 删除分支(myfeature)

git branch -d myfeature

Git 删除远程分支

git push origin :branchName

Git 将新分支推送到远程服务器

git push -u origin mynewfeature

git比较本地与远程代码

Don’t do a pull :

do a fetch (the syntax is the same as git pull, but it doesn’t automatically merge) do a diff between your dest branch and the other branch do a merge if you want

显示git注释细节

git show <commit-id>

git log -p

git log --pretty=format:"%h %s" --graph

git commit 多行消息

git commit -m "this is
> a line
> with new lines
> maybe"

git中文编码支持

echo "export LESSCHARSET=utf-8" > $HOME/.profile
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding gbk

删除某一文件

git rm .....xxxxxxx

应用stash变更

··· git stash apply ···