博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【3】Git命令
阅读量:5268 次
发布时间:2019-06-14

本文共 3318 字,大约阅读时间需要 11 分钟。

个人推荐的Git知识学习网站:

git常用操作图

1659331-20190706104934918-1443126800.png

init -> add -> commit -> remote -> push

初始化本地仓库

cd ./gitDemo$ echo "# Share" >> README.md##初始化仓库$ git init##添加文件至暂存区$ git add README.md##提交文件至本地仓库$ git commit -m "first commit"

commit 命令

## -m :提交注释$ git commit -m "Story 182: Fix benchmarks for speed"## -a :跳过使用暂存区域$ git commit -a -m 'added new benchmarks'

提交至远程仓库

##添加远程仓库:git remote add [shortname] [url] ,仅需指定一次,会自动保存在git config中$ git remote add origin https://github.com/HiMyCode/GitStudyDemo.git##推送至远程仓库$ git push -u origin master git push [remote-name] [branch-name]##查看远程仓库信息:git remote show [remote-name]$ git remote show origin##修改远程仓库的本地简称:$ git remote rename pb Paul##移除远程仓库paul$ git remote rm paul

注意:对远程仓库的重命名,也会使对应的分支名称发生变化,原来的 pb/master 分支现在成了 paul/master。

fetch/clone -> checkout

clone仓库

##git clone 
<版本库的网址>
<本地目录名>
##使用默认仓库名grit$ git clone git://github.com/schacon/grit.git##使用仓库名mygrit$ git clone git://github.com/schacon/grit.git mygrit

说明:git clone将其他仓库克隆到本地(从无到有),包括被clone仓库的版本变化,即.git文件夹里存放着与远程仓库一模一样的版本库记录。

pull更新仓库

##拉取远程服务器的master分支合并到temp分支中$ git checkout temp$ git pull origin master

fetch更新仓库

##查看当前配置的远程库$ git remote## -v :显示远程仓库地址$ git remote -v
##获取远程仓库到本地,默认分支 master : git fetch [remote-name]##拉取origin仓库的master分支到本地的origin/maste$ git fetch origin master##将拉取到本地的origin/maste合并到本地仓库$ git merge origin/master
##拉取origin仓库的master分支到本地的temp分支$ git fetch origin master:temp##合并temp分支到master分支$ git merge temp##删除temp分支$ git branch -d temp

说明:

  git clone 命令本质就是自动创建了本地的 master 分支用于跟踪远程仓库中的 master 分支。
  git pull 从原始克隆(本地仓库clone的仓库)的远端仓库中抓取数据后,合并到工作目录中的当前分支,存在产生冲突的可能,相当于git pull = git fetch + git merge。
  git branch 只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。

checkout检出

##切换分支到git chectout temp

其他命令总结

rm 命令

##删除本地文件,暂存区文件仍在,git status 提示 Changes not staged for commit$ rm grit.gemspec##删除暂存区文件$ git rm grit.gemspec## -f :强制删除暂存区文件,删除那些修改过并且已经放到暂存区域的文件$ git rm -f grit.gemspec##使用 glob 匹配模式##删除 log/ 目录下扩展名为 .log 的所有文件$ git rm log/\*.log##删除以 ~ 结尾的所有文件$ git rm \*~

移动命令(重命名)

$ git mv README.txt README##以上命令等价于以下三条命令$ mv README.txt README$ git rm README.txt$ git add README

查看提交历史

##简要提交版本日志记录$ git log## -p:详细显示每次提交的内容差异,-n : 仅显示最近的n次更新:$ git log -p -2##查看文件提交历史作者,-L:指定开始和结束行 git blame -L 20,30 test.md

说明:因命令行查看log不便,暂不扩展。

撤销操作--修改最后一次提交

##撤销提交$ git commit --amend##修改提交信息,重新提交$ git commit -m 'initial commit'##新增遗漏文件$ git add forgotten_file##重新提交$ git commit --amend

说明:上面的后三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

撤销操作--取消已经暂存的文件

##撤销本次所有暂存,暂存区的目录树会被 master 分支指向的目录树所替换,工作区不受影响$ git reset HEAD##撤销单个暂存文件$ git reset HEAD benchmarks.rb##直接从暂存区删除file文件工作区则不做出改变$ git rm --cached 

撤销操作--取消对文件的修改(修改过但未暂存)

##用暂存区全部或部分文件替换工作区的文件,会清除工作区中未添加到暂存区的改动$ git checkout .$ git checkout -- 
##用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件,同时清除工作区和暂存区中未提交的改动git checkout HEAD .git checkout HEAD 

配置相关命令

##查看所有配置信息$ git config --list##查看指定变量配置信息$ git config user.name##配置用户名及邮箱$ git config --global user.name "dis"$ git config --global user.email dis@qq.com##配置默认编辑器$ git config --global core.editor vim##配置默认差异分析工具$ git config --global merge.tool vimdiff

说明:对于 git config --list 列出的重复的变量名,其来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),Git 实际采用的是最后一个。

tag 打标签

##列出现有标签$ git tag
作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/DeepInThought/p/11131356.html

你可能感兴趣的文章
Servlet里的学问(一)
查看>>
js/ajax跨域访问—jsonp的原理和实例(javascript和jquery)
查看>>
pyspider操作千万级库,pyspider在对接量级较大库的策略
查看>>
详解zabbix中文版安装部署
查看>>
[LeetCode][JavaScript]Reverse Nodes in k-Group
查看>>
JUnit 4 Vs TestNG比较
查看>>
iOS8 地图遇到的问题
查看>>
Asp.net mvc3 文件下载的实现
查看>>
构造函数的重载
查看>>
Switch结构
查看>>
CMakeList 编写规则 -1
查看>>
babel 7 简单指北
查看>>
49.Submission Details java solutions
查看>>
python 线程信号量 -5
查看>>
实现Action
查看>>
策略模式
查看>>
Python装饰器
查看>>
BZOJ4259 残缺的字符串(FFT)
查看>>
Educational Codeforces Round 58 Div. 2 自闭记
查看>>
selenium--键盘事件
查看>>