安装

这里就不介绍安装了,度娘一大堆,找不到可以去找谷爹(前提是你能找到)。安装好就跟着笔记进行下一步

准备工作

首先我们需要一个可以 git 的东西,所以我们需要一个文件夹和一个文件

创建文件夹 test:mkdir test

切换到 test 目录:cd test

新建 a.md 文件:touch a.md


git命令

有了可以操作的东西,我们就开始使用 git 命令了,首先让我们看看文件夹当前的状态

查看状态:git status

 git status
位于分支 master
未跟踪的文件:
(使用 "git add <文件>..." 以包含要提交的内容) ./ 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)

初始化git库:git init

 git init
已初始化空的 Git 仓库于 /home/bubao/test/git/test/.git/

提交到git「暂存区」:git add

刚刚我们执行 git status 时有个 git add ,我们试试这个命令

 git add
没有指定文件,也没有文件被添加。
也许您想要执行 'git add .'?
git add a.md

可以看到,直接用git add 命令,后面还需加文件名,但是第二次加了文件名后面啥都不出现呢?啥都不出现就说明正确了,和Linux一个德性。

提交到git 仓库:git commit -m "first"

刚刚的git add a.md 是把文件放到暂存区,这次才是提交到仓库,commit 是提交的意思,-m 代表是提交信息,后面的 "first" 是提交描述,不填写会报错的。

 git commit
error: cannot run vi: 没有那个文件或目录
error: unable to start editor 'vi'
请使用 -m 或 -F 选项提供提交说明。 git commit -m "first"
[master(根提交) ef2edb7] first
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a.md

git status查看状态

 git status
位于分支 master
无文件要提交,干净的工作区

日志:git log

想看我们之前干了什么?我们就需要这个命令了

commit ef2edb769366c1dfef2030293c517b4c27698205
Author: bubao <这里是邮箱,就不曝了>
Date: Sun Mar 12 16:39:51 2017 +0800 first
(END)

这个就是日志了,记录着hash值,作者,时间,提交描述。我的git好像是在我玩hexo的时候绑定了我的github,居然显示我的邮箱和用户名,不要在意这些细节了。

查看、创建分支:git branch

一般我们默认是一个分支master,用git branch 查看一下分支情况

 git branch
* master

前面的*指的是我们在操作哪个分支,当然我们也可以新建一个分支。创建一个分支a,这时候分支 a 跟分支 master 是一模一样的内容。

 git branch a

 git branch
a
* master

切换分支:git checkout

这个命令用来切换到我们已有的分支

 git checkout a
切换到分支 'a'

是不是觉得创建和切换分开很不爽,下面这个命令帮你一步到位

创建、并切换到a分支:git checkout -b a

 git checkout -b a
切换到一个新分支 'a'

合并分支:git merge

当我们在a分支上的工作完了,我们需要把a分支合并到主分支(master)上。务必要记得先切换到master 分支,把a分支的代码合并过来

 git checkout master
切换到分支 'master' git merge
fatal: 当前分支没有对应的远程仓库。 git merge a
已经是最新的。

git merge后面要加上要合并的分支名,否则它会提示你合并的是远程仓库哦。

删除分支:git branch -d a

既然有创建分支,那么也会有删除没有用的分支了。现在我们有一个a分支和一个主分支,我们合并了分支后a分支就没用了,so 我们要对 a分支下手了,哦对了,删除前要切换到master分支哈

 git checkout master
切换到分支 'master' git branch -d a
已删除分支 a(曾为 7367efd)。

查看远程分支列表:git branch -r

如果我们有远程分支,那么我们可以用这个命令来查看我远程分支的列表,不过我们还没有远程分支呀,到时候有再用。

强制删除分支:git branch -D

有些时候可能会删除失败,比如如果a分支的代码还没有合并到master,你执行 git branch -d a 是删除不了的,它会智能的提示你a分支还有未合并的代码,但是如果你非要删除,那就执行 git branch -D a就可以强制删除a分支。


创建版本标签tag:git tag v1.0

 git tag v1.0

查看tag:git tag v1.0

 git tag
v1.0

切换tag:git checkout v1.1

 git tag v1.1     

 git checkout v1.1
HEAD 目前位于 7367efd... first

Github

生成SSH

ssh-keygen -t rsa

指定 rsa 算法生成密钥,接着连续三个回车键(不需要输入密码),然后就会生成两个文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密钥,id_rsa.pub 就是公钥。把 id_rsa.pub 的内容添加到 GitHub 上,这样你本地的 id_rsa 密钥跟 GitHub 上的 id_rsa.pub 公钥进行配对,授权成功才可以提交代码。

查看公钥

cd ~/.ssh
cat id_rsa.pub

添加SSH key

这里就不演示了,gihub有详细说明(其实是我懒得截图,Linux用户你们懂的)。

测试SSH key

  ssh -T git@github.com
Hi bubao! You've successfully authenticated, but GitHub does not provide shell access.

设置用户名和用户邮箱

git config —global user.name "bubao"
git config —global user.email "asd565586630@gmail.com"

Push & Pull

把本地代码推到远程 master 分支:git pull origin master

把远程最新的代码更新到本地。一般在 push 之前都会先 pull ,这样不容易冲突。

关联本地已有项目:git remote add 远程仓库名字 github地址

查看当前项目有哪些远程仓库:git remote -v

命令别称:alias

git config --global alias.co checkout  # 别名
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.psm 'push origin master'
git config --global alias.plm 'pull origin master'
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --"

其他配置

git config --global core.editor "vim"  # 设置Editor使用vim

git config --global color.ui true #给 Git 着色

git config --global core.quotepath false # 设置显示中文文件名

默认这些配置都在 ~/.gitconfig 文件下的,你可以找到这个文件查看自己的配置,也可以输入 git config -l 命令查看。

diff

git diff #查看修改变动

直接输入 git diff 只能比较当前文件和暂存区文件差异,什么是暂存区?就是你还没有执行 git add 的文件。

stash

把当前分支所有没有 commit 的代码先暂存起来:

git stash

暂存区记录:

git stash list

暂存区代码还原:

git stash apply

清除暂存区记录:

git stash drop

暂存区代码还原并清除暂存区记录:

git stash pop

清空所有暂存区的记录:

git stash clear

drop 是只删除一条,当然后面可以跟 stash_id 参数来删除指定的某条记录,不跟参数就是删除最近的,而 clear 是清空。

merge & rebase

rebase 跟 merge 都是合并分支,区别是merge 暴力合并,能知道代码来自哪个分支;rebase 比较合并,按代码的时间来给它重新排序,然后重新放置好,看起来很有逻辑,却不能得知哪个代码来自哪个分支。

小白笔记:Git入门之常见命令的更多相关文章

  1. [Linux基础]Linux基础知识入门及常见命令.

    前言:最近刚安装了Linux系统, 所以学了一些最基本的操作, 在这里把自己总结的笔记记录在这里. 1,V8:192.168.40.10V1:192.168.40.11Linux ip:192.168 ...

  2. Mysql学习笔记(001)-常见命令

    常见命令 SHOW DATABASES; /* use test; create database myemployees; use myemployees; create table employe ...

  3. git使用的常见命令(一)

    .查看当前有哪些branch git branch 其中有*选中的分支是你的当前使用的分支 .新建一个分支 git branch dev_xiaoming .切换到一个分支 git checkout ...

  4. Git 入门和常用命令详解

    git 使用使用教程   git 使用简易指南  常用 Git 命令清单 下载   https://git-scm.com/downloads 工作流 本地仓库由三部分组成. 工作区:保存实际的文件( ...

  5. Git入门及常用命令(1)(window环境下)

    文章参考摘抄自:git教程 1.git的安装 Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样.Cygwin的安装和配置都比较复杂,就不建议你折腾了 ...

  6. Git入门之常用命令(转载阮一峰老师)

    流程图 下面是我整理的常用 Git 命令清单.几个专用名词的译名如下. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓 ...

  7. git使用的常见命令汇总

    git的简单介绍 git是分布式版本控制工具 git 的基本操作指令 git init 初始化git仓库 git add 文件名 git add . 把文件 添加到 git 暂存区中 git stat ...

  8. Docker笔记6:Docker 常见命令及镜像管理

    目  录 一.Docker 常用命令 docker version 命令 docker info 命令 二.Docker 镜像管理 搜索镜像:docker search 镜像名 获取镜像:docker ...

  9. git的一些常见命令

    一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码 ...

随机推荐

  1. Codeforces 1315B Homecoming (二分)

    After a long party Petya decided to return home, but he turned out to be at the opposite end of the ...

  2. ServletContext的使用

    ServletContext: ServletContext表示Servlet应用程序.每个Web应用程序只有一个上下文.在将一个应用程序同时部署到多个容器的分布式环境中,每台Java虚拟机上的Web ...

  3. Knapsack Cryptosystem 牛客团队赛

    时限2s题意: 第一行包含两个整数,分别是n(1 <= n <= 36)和s(0 <= s <9 * 10 18) 第二行包含n个整数,它们是{a i }(0 <a i ...

  4. ALSA driver--HW Buffer

    当app在调用snd_pcm_writei时,alsa core将app传来的数据搬到HW buffer(即DMA buffer)中,alsa driver从HW buffer中读取数据传输到硬件播放 ...

  5. 蓝桥杯2016年省赛C/C++大学A组

    网友年龄 某君新认识一网友. 当问及年龄时,他的网友说: "我的年龄是个2位数,我比儿子大27岁, 如果把我的年龄的两位数字交换位置,刚好就是我儿子的年龄" 请你计算:网友的年龄一 ...

  6. phpinfo(): It is not safe to rely on the system's timezone settings

    PHP调试的时候出现了警告: 问题: Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You ...

  7. SQL Server不同服务器不同数据库间的操作

    什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库上进行相关的数据库操作,比如增删改查. 为什么要进行跨服务器操作 随着数据量的增多,业务量的扩张,需要在不 ...

  8. HBase 2.1.3 集群 web 报错InvalidProtocolBufferException 解决方法

    搭建好HBase 集群后,各种后台进程都正常,搭建手册参考: Hbase 2.1.3 集群搭建手册https://www.cndba.cn/dave/article/3322 但是通过web访问,却报 ...

  9. 【译】高级T-SQL进阶系列 (三)【中篇】:理解公共表表达式(CTEs)

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 一个简单的CTE例子 如前所述,CTE‘s提供给你了一个方法来更容易的书写复杂的代码以提高其可读性.假设你有列表 ...

  10. 搭建第一个django项目

    django是python做web最为强大和全能的后端框架,不会django的python如一条咸鱼... 所以开始学习django框架. 首选得在python中下载django 下载命令: pip ...