Git命令行基本操作
Git--- download网址:https://git-scm.com/downloads
0. 安装Git
网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GITK。
1. Git基本配置
git config可以配置git的参数,可以使用git config --list
查看已经配置的git参数。其中有三个级别的保存位置,--system
、--global
、--local
,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用--local
。
配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
git config --global user.name "Tocy"
git config --global user.email zyvj@qq.com
其他配置
如果在windows下建议还是配置下默认文本编辑器core.editor
和差异分析工具merge.tool
。
2. 创建Git仓库
可以直接调用git init
初始化当前目录,即创建Git仓库。
3. 获得Git仓库
如果需要克隆远程仓库,可以使用git clone
,比如:
git clone https://git.oschina.net/Tocy/SampleCode.git
4. 提交更新
在windows下的Git GUI中,提交很简单,右键-TortoiseGit-Commit。那么命令行下需要怎么处理?
Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:
commit <-- stage <-- modify
commit --> --- --modify
我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a
,a的状态变成staged;如果使用git commit
,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。
当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add
可以把未跟踪状态变更为staged;通过git rm
可以将staged或者committed状态变为未跟踪状态。
git status
通常提交前先检查下修改了什么内容,当前Git目录下各文件的状态。
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
Readme.md
nothing added to commit but untracked files present (use "git add" to track)
git add
git add可以添加文件或者目录,也可以使用通配符。比如:
git add Readme.md # add file only
git add *.cpp # add all cpp files
git add /home/code/ # add all files in /home/code
git diff
git diff可以查看当前目录的所有修改。
提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff
导出PATCH做代码走读。
可以使用git diff --staged
或git diff --cached
查看staged与上次提交快照之间的区别。
git commit
提交前需慎重。直接调用git commit
会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。
针对单行日志提交的情况,可以使用如下命令:git commit -m "add readme"
。
还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a
(使用这个命令前建议确认下当前目录的修改是否正确、必须)。
git rm
git rm会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用git rm --cached readme.md
。
5. 提交历史查看
可以使用git log
查看当前工程的所有提交的日志。
git log --stat # 仅显示摘要选项
git log --pretty=oneline # 定制记录格式
git log --graph # 图像化分支和版本更新
6. 撤销更新
7. 远程仓库
可以使用git remote
查看当前的远程库。git remote -v
可以显示对应的克隆地址。(对于多个远程仓库很有用)
添加远程仓库
git remote add [short_name] [url]
可以添加新的远程仓库。
从远程仓库抓取数据
git fetch [remote-name]
可以从远程仓库抓取数据到本地。
也可以使用git pull
推送数据到远程仓库
git push [remote_name] [branch_name]
默认使用origin和master。
查看远程仓库信息
git remote show origin
远程仓库的删除和重命名
git remote rename [old_name] [new_name]
git remote rm [remote_name]
8. 打Tags
可使用git tag
显示当前库中的标签。
添加标签(含附注)
git tag -a v0.1 -m "my version 0.1"
使用如下命令查看Tag日志信息(指定对应标签的名字)git show v0.1
也可使用SHA-1的提交表示创建tag:git tag -a v0.2 [SHA-1] -m "my version 0.2"
分享标签
默认的,git push不会推送标签信息到远程仓库,需要通过命令显式推送。git push origin v0.1
如果需要推送所有标签,使用git push origin --tags
9. Git分支
git分支是轻量级的,速度很快,仅记录索引信息。
显示所有分支
使用git branch
可显示当前所有分支。
可以使用--merged和--no-merged查看已经合并、未合并的分支。
创建及切换分支
可以使用下面命令直接切换并创建分支git checkout -b testing
等价于
$ git branch testing # 创建testing 分支
$ git checkout testing # 切换到testing分支
注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。
分支合并
将hotfix分支合并到master(主分支)上,需要通过下面命令:
$ git checkout master
$ git merge hotfix
合并之后可以使用git branch -d hotfix
删除分支。
如果合并时存在冲突,需要手工修改。
转载自:https://www.cnblogs.com/tocy/p/git-command-line-manual.html
Git命令行基本操作的更多相关文章
- GIT → 05:Git命令行操作
5.1 打开命令行窗口 安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作: 5.2 初始化Git ...
- Git命令行(转用于学习和记录)
Git命令行介绍和使用说明(持续更新) 参见:<Git 中文简体教程> 一. 命令“git”或者“git help”查询常用命令 [add]: “git add”——不但是用来添加不在版本 ...
- windows下使用TortoiseGit代替Git命令行操作
windows下使用TortoiseGit代替Git命令行操作 大家在使用svn的时候,都非常喜欢使用小乌龟,也就是TortoiseSVN:那么git也有小乌龟版本,即TortoiseGit. 1.安 ...
- git命令行工作的正确姿势
git命令行创建并提交新分支到mater分支的常规步骤 git branch new_branch git status 查看修改的文件 git add changed_files git commi ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- git 命令行
在使用 git 命令行之前需要下载安装软件官方网站:https://git-scm.com/window 或者 mac 等其它版本自行下载 使用方法一:安装后在项目文件夹中右键菜单会有个 Git Ba ...
- git命令行工作环境配置【转】
转自:http://www.cocoachina.com/ios/20171115/21163.html 本文为CocoaChina网友whf5566投稿 前言 笔者一直使用git的图形化工具sour ...
- git 命令行下浏览器tig使用记录
git 命令行下浏览器tig使用记录 tig 是一款优化 git 命令行的工具,使 git 命令行更加的便捷人性化 .如果用习惯了,会上瘾. 以下是一些使用记录: 安装成功后,在 Repo 文件夹下, ...
- Git的基本使用方法和安装&心得体会(使用git命令行)
这是补发的,使用命令行操作的. (1)选择本地repository的路径 找到后点鼠标右键,选择git bash here. (2) clone到本地 在命令行输入 git clone ADDRESS ...
随机推荐
- A*算法详解链接
A星算法详解(个人认为最详细,最通俗易懂的一个版本) Introduction to the A* Algorithm 路径规划: a star, A星算法详解 实现A星算法
- [转]$.post() 和 $.get() 如何同步请求
原文地址:https://blog.csdn.net/sunnyzyq/article/details/78730894 由于$.post() 和 $.get() 默认是 异步请求,如果需要同步请求, ...
- mysql分区方案的研究
笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何. 之前写过一篇文章,http://www.c ...
- MySQL 下载地址获取
http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.26-winx64.msi 首先安装 mysql installer 安装器进行安装,之前会让你选 ...
- SAP S4HANA1610/Fiori安装过程全记录
经历各种坑,从硬件到文件,终于安装成功. 有需要安装或使用S4HANA(含Fiori)的同学可以参考. 安装文件分享给大家 链接:http://pan.baidu.com/s/1mi7LfIS 密码: ...
- 第四百零六节,自定义用户表类来继承Django的用户表类,
第四百零六节,自定义用户表类来继承Django的用户表类, models.py from django.db import models # Create your models here. from ...
- MYSQL---Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column '
--数据库中插入数据或执行sql语句时一直报下面这个错误: Expression # of ORDER BY clause is not in GROUP BY clause and contains ...
- js插件解读
1.calendar.js:日期插件:2.html5shiv.js:用于解决IE9以下版本浏览器对HTML5新增标签不识别,并导致CSS不起作用的问题的js文件:3.jquery.js里的代码是没有进 ...
- maven jdk 版本配置
一种是配置 pom.xml,一种是配置 settings.xml. 方式一:settings.xml 配置 打开 %maven%/conf/settings.xml 文件并编辑它(%maven% 表示 ...
- python学习笔记(四)
模块与包 python模块,一个.py文件 导入模块的语法: import importable importable#可以是包或包中的模块 import importable1,....,impo ...