到目前为止,我们已经了解了很多git命令,我们就把工作中经常要用到的命令梳理下吧
安装后的第一步
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址,因为每次提交都要用到这些信息:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
合并冲突
我们已经说过合并冲突的解决方式。通常是编辑一下文件,去掉<<<<,====,>>>>标志,保留需要留下的代码。另一种方式是通过git输出文件 - 你可以输出到另外的文件名,然后当你决定了要用哪个后,再将选定的正确文件复制为正常的文件名
远端服务器
git的一个超强大的功能就是可以有不止一个远端服务器(实际上你一直都在一个本地仓库上工作)。你并不是一定都要有这些服务器的写权限,你可以有多个可以读取的服务器(用来合并他们的工作)然后写入到另外一个仓库,添加一个新的远端服务器很简单:
#关联一个远程库,url为链接地址
$ git remote add origin url
如果你想查看远端服务器的信息可以这样做:
# 显示每个远端服务器的URL$ git remote -v # 提供更多详细信息$ git remote show name
建立分支
在git里建立分支非常简单(而且像闪电一样快,因为它只需要创建一个小于100字节的文件)。用普通方式建立新分支并切换过去:
# 创建dev分支并切换到dev分支上
$ git checkout -b dev
git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令:
$ git branch dev
$ git checkout dev
远端分支
如果你在本地有一个分支希望推到远端服务器上,你可以用一行命令推送上去
#默认情况下remoteName就是origin
$ git push [remoteName] [localBranchName]
如果你想在远端服务器上删除一个分支
$ git push origin :heads/[name]
如果你想查看所有远端分支的状态可以这样做:
$ git remote show origin
这个命令可能会列出服务器上一些以前有过但现在已经不在了的分支。如果碰到这种情况你可以用下面的命令从你本地分支里清理掉:
$ git remote prune
储藏
在git里你可以把当前工作状态放进一个储藏堆栈中,然后可以再取出来。最简单的情形是下面这样:
$ git stash# 做点其他事情...$ git stash pop
很多人经常使用git stash apply来代替pop,不过如果这样做的话最后会遗留一个很长的储藏列表。而“pop”会在全部加载后自动从堆栈中移除。如果使用过git stash apply,你也可以使用下面的命令从堆栈上移除最后一项:
$ git stash drop
git会基于当前的提交信息自动创建评论。如果你更希望有自定义信息的话(因为它可能和前一个提交没有任何联系):
$ git stash save "My stash message"
如果你希望从列表中取出一个特定的储藏点(不一定非得是最后一个)可以先列出它们然后用下面的方式取出:
$ git stash list stash@{0}: On master: Changed to German stash@{1}: On master: Language is now Italian$ git stash apply stash@{1}
查看日志
我们经常使用‘git log’来查看最近的提交。不过,有一些技巧来更好地应用。比如,你可以使用下面的命令来查看每次提交的具体改动:
$ git log -p
或者你可以仅仅查看有哪些文件改动:
$ git log --stat
搜索日志
如果你想找特定提交者可以这样做:
$ git log --author=Andy
或者你想在提交信息里找一些相关字段:
$ git log --grep="Something in the message"
另外这里粘贴一下其他网友总结的,我觉得总结的非常好:
1) 远程仓库相关命令
检出仓库:$ git clone url
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name][newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支
如果想删除远程的分支呢?类似于上面,如果:左边的分支为空,那么将删除:右边的远程的分支。
$ git push origin :test // 刚提交到远程的test将被删除,但是本地还会保存的,不用担心
3)版本(tag)操作相关命令
查看版本:$ git tag
创建版本:$ git tag [name]
删除版本:$ git tag -d [name]
查看远程版本:$ git tag -r
创建远程版本(本地版本push到远程):$ git push origin [name]
删除远程版本:$ git push origin :refs/tags/[name]
4) 子模块(submodule)相关操作命令
添加子模块:$ git submodule add [url] [path]
如:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行
更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1)$ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“.git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录
实际工作中我们用到的命令远不止这些,希望和大家共同学习进步,请大家多多指教
参考: