git使用备注
git clone 代码库地址
git branch -r 查看远程分支
git branch 查看本地分支
git branch -a 查看远程和本地分支。带*的表示正在所处分支。
git branch branch_name 建立一个分支(是在当前分支HEAD上建立)
git checkout branch_name 切换到另一个分支
git checkout -b branch_name origin/branch_name 建立和远程分支追踪关系的本地分支
git checkout -- filename 撤销工作目录的改动(已经在版本管理,但还没提交到暂存区的文件)
怎样获取远程或本地分支的某个文件到当前分支呢?
git merge不可以,它只能merge分支
此时可以使用git checkout 命令。
git checkout 远程/本地分支名称 指定文件
这样就可以获取到某分支的指定文件到当前分支了,并且不会发生切换分支。
git reset HEAD filename 撤销暂存区的改动
git reset 版本号 回退到某个版本,留有文件修改(例子:文件已经commit到本地版本库,想回退到上一个版本 git reset HEAD^ 版本号可在git log中查看) --hard 硬回退
一个例子:
commit了两个提交,并push到了远程库。发现最后一次的commit不对,想回到上一个commit。这时候执行 git reset HEAD^,回到了上一次的版本。这就落后了远端分支一个提交, git log 看是缺少了后悔的那个提交点,这样直接push到远程是不可以的。
这时候可以执行 git reset origin/xx,同步本地分支和远程分支(但不会丢失本地更改),此时git log可以看到commit点都回来了。然后再git add /commit/push
git revert HEAD 撤销当前版本的修改,表示回到上一个版本。revert是作为新的commit
git diff 这个命令可以diff各种不同
git diff 默认是比较当前工作目录和暂存区(git必须要知道暂存区的概念)的不同
git diff --cached 比较暂存区和版本库的不同
git diff HEAD 比较工作目录和版本库的差异
git diff --stat 只看统计哪些文件差异,不看具体内容差异
git diff HEAD origin/branch_name filename 比较当前分支和远程分支上这个file的不同
git add
git commit -m 'xx'
git log 查看commit信息
git log --pretty=oneline 很多个commit信息,直接查看commit id,比较方便
如果查看某一个文件的修改历史,可以这样:
git log filename (git log --pretty=oneline filename) ,通过列出的commitid,再执行git show commitid,查看具体修改历史
git show commitid 查看某次提交的信息
git branch --set-upstream master origin/master 设立追踪关系 本地和远程分支
git pull 远程名 远程分支名称:本地分支名称
省略本地分支名,表示当前所在分支;
如果建立了追踪关系,可以省略分支名称
git push 远程名 本地分支名称:远程分支名称
如果省略远程分支名称,就是把本地分支推送到远程,如果没有,就在远程新建;如果只省略本地分支,表示删除远程分支。
如果有追踪关系,可以省略俩名称
git merge branchname 在当前分支上合并branchname
git tag tagname 在当前分支的commit版本上打一个tag。tag和某个commit id对应的
git tag 查看各个tag
git show tagname 查看该tagname信息
git stash [save message] 保存当前进度,工作区恢复到当前HEAD版本内容。很方便于当前改的东西存档,去fix其他东西。
git stash list 查看stash的列表
git stash pop 弹出最新的stash。比如修复完,回到之前改的。
在开发过程中,有可能产生附带的缓存文件,在部署到服务器时是没用的。此时可以在版本库中添加一个.gitignore文件。
比如以.dat为后缀的文件不想要提示是否添加了。在.gitignore文件中行内容写上.dat即可。
如果不希望自己的.gitignore文件上传,可以在该文件再追加一行.gitignore。
git的命令可以使用别名简化,比如每次git commit,checkout等,单词较长。可以给他们起个别名。
在.git/config文件中添加。比如几个命令:
[alias]
co = checkout
ci = commit
br = branch
st = status
在.git/config中配置,只是在当前git代码库生效,如果该用户下都生效,需要在~/.gitconfig 中配置,或者命令如git config --global即可
比如:
git diff如何使用vimdiff形式查看diff文件?
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool
利用git d 执行即可
git使用备注的更多相关文章
- Git版本控制使用介绍
Git是什么? Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git与SVN的最主要的区别? Git是分布式的,SVN不是 Git没有一个全局的版本号,而SVN有 ...
- Git 常用配置和使用
Git:是一个分布式的源代码管理工具,Linux内核的代码就是用Git管理的所以它很强,也很快, 和 Vss/SVN比起来 本地Git初始化配置及其使用: 1. 初始化本地Git库:打开Git Bas ...
- git增加子模块
要拉取GIT代码时,有时候需要拉取多个GIT模块,一起配合使用: 1.下载主模块: git clone -b master http://username:passwd@git.wondershare ...
- 【Git】Git pull 强制覆盖本地文件
git fetch --all git reset --hard origin/master git pull 备注: git fetch 只是下载远程的库的内容,不做任何的合并 git reset ...
- 将本地项目上传到git
1.新建一个README.md的文件,并将项目名写入此文件(一般第三方git服务会在创建在创建项目的时候自动创建该文件,可以跳过这一步) echo "# Lee" >> ...
- Windows配置多个git用户
Window配置多个Git账户,SSH连接GitHub.GitLab 最新版本GIt配置对应多个Git仓库(不需要添加多个用户名和邮箱): 在本地git上添加一个用户名和邮箱,生成一对公钥和私钥,把公 ...
- Git学习(一)(2015年11月12日)
环境:win10 已安装git工具(如未配置环境变量需先配置环境变量) 如何配置环境变量:.我的电脑-属性-高级系统设置-环境变量-系统变量 找到path然后在变量值结尾增加路径: ;C:\Progr ...
- git创建项目的两种方式
场景1: 将本地内容推送给远程库 1.创建版本库 git init 将此目录转换为git可管理的仓库 git config --global user.name "xx" 或 gi ...
- 认识GIT之入门
前言 GIT是非常优秀的源代码版本管理工具,经过几年的发展,已经变得非常成熟以及流行,不同于其他的源代码管理系统,值得使用.GIT官网下载在线安装包,经常会中途退出,很有可能的原因是被墙了,所以建议使 ...
随机推荐
- 微信小程序上传图片,视频及预览
wxml <!-- 图片预览 --> <view class='preview-warp' wx:if="{{urls}}"> <image src= ...
- 【读书笔记】iOS-属性中的内存管理参数
一,assign 代表设置时候直接赋值,而不是复制或者保留它. 二,retain. 会在赋值的时候把新值保留.此属性只能用于Object-C对象类型. 三,copy 在赋值时,将新值复制一份,复制工作 ...
- Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
脚本开发- soap_request函数介绍及WebService接口测试 by:授客 QQ:1033553122 函数介绍 soap_request 函数执行一个SOAP请求 函数原型 int so ...
- 安卓开发_计时器(Chronometer)的简单使用
计时器控件(Chronometer)是一个可以显示从某个起始时间开始一共过去多长时间的本文. 继承自TextView,以文本的形式显示时间内容 该组件有五个方法 1.setBase(): \\用于设置 ...
- office远程代码执行(CVE-2017-11882)
office远程代码执行(CVE-2017-11882) 影响版本: MicrosoftOffice 2000 MicrosoftOffice 2003 MicrosoftOffice 2007 Se ...
- 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...
- MySQL 并行复制演进及 MySQL 8.0 中基于 WriteSet 的优化
MySQL 8.0 可以说是MySQL发展历史上里程碑式的一个版本,包括了多个重大更新,目前 Generally Available 版本已经已经发布,正式版本即将发布,在此将介绍8.0版本中引入的一 ...
- [转]extern "C"的作用
extern "C"的主要作用就是为了能够正确实现C++代码调用其它C语言代码. 加上extern “C”后,会指示编译器将这部分代码按C语言进行编译,而不是C++的.这是因为C+ ...
- ELK-elasticsearch-6.3.2部署
参考博客:linux下ElasticSearch.6.2.2集群安装与head.Kibana.X-Pack..插件的配置安装 参考博客:ELK5.5.1 插件安装实践纪要(head/bigdesk/k ...
- Unity3d自制字体
这篇教学中会使用到BMFont 这个工具 准备好Unity5.3.2版本,其他版本会有异常 一.制作字体 下载链接: http://www.angelcode.com/products/bmfont/ ...