Git快速入门和常用命令

一、快速入门

本地初始化一个项目

首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中。

git config --global user.name "你的名字或昵称"
git config --global user.email "你的邮箱"

然后在你的需要初始化版本库的文件夹中执行:

git init
git remote add origin <你的项目地址> //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 [email protected]:xxx/xxx.git

这样就完成了一次版本你的初始化。

如果你想克隆一个项目,只需要执行:

git clone <项目地址>

完成第一次提交

进入你已经初始化好的或者克隆项目的目录,然后执行:

git pull origin master
<这里需要修改/添加文件,否则与原文件相比就没有变动>
git add .
git commit -m "这是我第一次提交的说明"
git push origin master

然后如果需要账号密码的话就输入账号密码,这样就完成了一次提交。

二、基本命令

获取与创建项目

git init    #用 git init 在目录中创建新的 Git 仓库
git clone 项目地址    #使用 git clone 拷贝一个 Git 仓库到本地

默认情况下,Git 会按照你提供的 URL 所指示的项目的名称创建你的本地项目目录。 通常就是该 URL 最后一个 / 之后的项目名称。如果你想要一个不一样的名字, 你可以在该命令后加上你想要的名称。

基本快照

添加快照:

git add    #可将该文件添加到缓存

我们可以使用 git add . 命令来添加当前项目的所有文件。当你要将你的修改包含在即将提交的快照里的时候,需要执行 git add。

查看快照信息:

git status    #列出当前目录所有还没有被git管理的文件和被git管理且被修改但还未提交(git commit)的文件,-s参数可简化显示
git diff    #显示已写入缓存与已修改但尚未写入缓存的改动的区别
  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat

组合起来用就是,git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是啥。

提交快照:

git commit    #将缓存区内容添加到仓库中,最好使用 -m 选项以在命令行中提供提交注释

如果你觉得 git add 提交缓存的流程太过繁琐,你也可以用git commit -a参数跳过这一步。

阻止某个快照上传:

git reset HEAD --文件   #用于取消已缓存的内容

简而言之,执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存。

删除快照:

git rm <file>  #从已跟踪文件清单中移除

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中,换句话说,仅是从跟踪清单中删除,使用 --cached 选项即可

git rm --cached <file>

递归删除整个目录中的所有子目录和文件

git rm –r * 

移动快照:

git mv  #用于移动或重命名一个文件、目录、软连接

查看配置的远程仓库

git remote    #查看当前配置有哪些远程仓库

提取远程仓库的跟新

git fetch     #从远程仓库下载新分支与数据,该命令执行完后需要执行git merge 远程分支到你所在的分支。
git merge    #从远端仓库提取数据并尝试合并到当前分支,在下面分支管理还会提到

假设你配置好了一个远程仓库,并且你想要提取更新的数据,你可以首先执行 git fetch [alias] 告诉 Git 去获取它有你没有的数据,然后你可以执行 git merge [alias]/[branch] 以将服务器上的任何更新(假设有人这时候推送到服务器了)合并到你的当前分支。

三、分支管理

创建分支:

git branch (branchname)

切换分支:

git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。

列出分支:

git branch

删除分支命令:

git branch -d (branchname)

分支合并命令:

git merge (branchname)

四、历史记录

git log    #列出历史提交记录
git log --oneline    #查看历史记录的简洁的版本
git log --oneline --graph    #查看历史中什么时候出现了分支、合并
git log --reverse --oneline    #逆向显示所有日志
git log --author=用户名 --oneline -5    #查找指定用户的提交日志,看5条

git log --oneline --before={3.weeks.ago} --after={2017-12-12} --no-merges    #查看3周前且在12月12日之后的所有提交,--no-merges 选项以隐藏合并提交

五、标签

git tag -a v1.0    #创建v1.0的标签

-a 选项意为"创建一个带注解的标签"。 不用 -a 选项也可以执行的,但它不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。 我推荐一直创建带注解的标签

git tag    #查看已有标签
git tag -d v1.1    #删除v1.0的标签
git show v1.0    #查看此版本所修改的内容
/*
Git有commit,为什么还要引入tag?
"请把上周一的那个版本打包发布,commit号是6a5819e…"
"一串乱七八糟的数字不好找!"
如果换一个办法:
"请把上周一的那个版本打包发布,版本号是v1.2"
"好的,按照tag v1.2查找commit就行!"
所以,tag就是一个让人容易记住的有意义的名字,它跟某个commit绑在一起。
*/

六、http(s)方式如何自动记住密码

https 方式每次都要输入密码,按照如下设置即可输入一次就不用再手输入密码的困扰而且又享受 https 带来的极速

按照以下设置记住密码十五分钟:

git config --global credential.helper cache

如果你想自定义记住的时间,可以这样:

git config credential.helper ‘cache --timeout=3600‘ //这里记住的是一个小时,如需其他时间,请修改3600为你想修改的时间,单位是秒

你也可以设置长期记住密码:

git config --global credential.helper store

或修改仓库的地址带上你的账号密码

http://yourname:[email protected]/name/project.git //注意,当使用邮箱时,请对@符号使用%40替换

如果你原本使用的 ssh 地址想更换成 http(s) 地址,可以执行以下命令:

//删除原本的ssh仓库地址
git remote rm origin //origin 代表你原本ssh地址的仓库的别名
//新增http地址的仓库
git remote add origin http://git.oschina.net/username/project.git

七、版本回退

回退远程仓库的版本

先在本地切换到远程仓库要回退的分支对应的本地分支,然后本地回退至你需要的版本,然后执行:

git push <仓库名> <分支名> -f

以当前版本为基础,回退指定个commit

首先,确认你当前的版本需要回退多少个版本,然后计算出你要回退的版本数量,执行如下命令

git reset HEAD~X //X代表你要回退的版本数量,是数字!!!!

需要注意的是,如果你是合并过分支,那么背合并分支带过来的 commit 并不会被计入回退数量中,而是只计算一个,所以如果需要一次回退多个 commit,不建议使用这种方法

回退到和远程版本一样

有时候,当发生错误修改需要放弃全部修改时,可以以远程分支作为回退点退回到与远程分支一样的地方,执行的命令如下

git reset --hard origin/master // origin代表你远程仓库的名字,master代表分支名
时间: 2024-09-30 15:15:04

Git快速入门和常用命令的相关文章

Docker快速入门——Docker常用命令

Docker快速入门--Docker常用命令 一.Docker命令简介 1.Docker命令简介 Docker的命令清单可以通过运行sudo docker或者sudo docker help命令查看.Docker容器技术在不断演化过程中,Docker的子命令已经达到41个,其中核心子命令(例如:run)还会有复杂的参数配置.Docker命令根据功能和使用场景可以分为4个部分. 2.Docker用户组 Docker守护进程绑定的是一个unix ?socket,而不是TCP端口,默认的属主是root

git基础入门之常用命令操作

本内容参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 初学,有什么不对的地方 ,欢迎指出 一.工作区(本地仓库) 1.创建仓库(repository):git init 用法:在文件夹(变成仓库的文件夹)目录下执行 git init 2.添加文件:git add [文件路径] 如: 提交文件:git add test.txt 提交文件夹:git add test 提交任意文

Git(二)--常用命令

$ git init  从当前目录初始化 $ git clone git://xxxx  从远程仓库克隆 $ git status 确定哪些文件当前处于什么状态 $ git add 开始跟踪一个新文件 $ git diff  比较工作目录中当前文件和暂存区域快照之间的差异(修改之后还没有暂存起来的变化内容) $ git diff --cached 比较已经暂存起来的文件和上次提交时的快照之间的差异 $ git commit -m 提交 $ git log 查看提交历史 $ git remote 

Git 入门和常用命令详解

git 使用使用教程   git 使用简易指南  常用 Git 命令清单 下载   https://git-scm.com/downloads 工作流 本地仓库由三部分组成. 工作区:保存实际的文件(本地实际的文件目录) 缓存区(Stage / Index):临时保存文件改动 HEAD:指向最近一次提交的后果 下图说明了 Git 的工作流程 图片来源:http://www.runoob.com Git 常用命令 git init 创建新仓库.在当前目录中创建新的 Git 仓库,生成.git文件夹

svn,git的对比以及常用命令上篇

之前定制Rom,需要下载android源码,修改系统应用.android源码管理使用repo+git,下载速度快的吓人.(直接下载的话,被墙了当然慢,请忽略这个因素).感觉git更适合大型项目管理.项目经验不是非常多,个人无论大小项目,自己选择的话还是喜欢用git. 个人总结的git优点 1.分支管理非常方便 2.回退,查看历史更加方便,支持命令更多 3.速度更快 4.可以离线提交到本地库,可以离线查看log 5.... 下面参照大牛的介绍,来具体看一下git和svn的不同 参考http://s

git开发流程、常用命令及工具

根据我最近使用git的一些经历,git是基于分支的版本控制工具,分支有远程分支和本地分支. 一.开发流程 大致是: 从远程服务器的master,clone一份项目文件到本地,然后本地master的基础上branch一个新的本地分支xname,然后checkout切换到这个本地分支上,开始开发: 开发过程中可以不断的commit到本地, 开发完成之后,把本地分支xname ,push origin到远程分支xname上,(纳尼,这个远程xname我什么时候建立的), 远程分支xname和maste

git的安装和常用命令

1,下载安装方法 http://jingyan.baidu.com/article/020278117cbe921bcc9ce51c.html 2,常用的命令 原文地址: http://www.admin10000.com/document/5374.html Git基本常用命令如下: git pull --rebase origin master git pull origin master mkdir:         XX (创建一个空目录 XX指目录名) pwd:          显示

小蚂蚁学习git(1)——常用命令解释

下载msysgit,它是window版本的git,在linux下最简单的方法就是使用命令: yum install git 一路默认安装即可,打开Git Bash,能够弹出一个类似cmd命令行的窗口,表示成功. 首先,需要设施用户名和邮箱作为一个标识. git    config    --global user.name "xiaomayi" git    config    --global user.email "email" 注意:git config -g

git 快速入门(二)

一.引子 git代码托管的优秀工具之一, 其工作原理和svn截然不同.一旦拥有主干master分支权限, 只要在本地拉取主干分支, 可以随时随地切换分支. 它拥有众多优点,eg :支持在断网的情况下, 切换创建分支. 二.常用命令 1.拉取远程分支 git clone "分支" 2.切换分支 git checkout "分支" 3.查看分支 git branch 4.查看文件修改状态 git status 5.提交修改文件到本地缓存 git add . git co