Git使用基础知识介绍

1. Git基础知识

Git是一个免费、开源的分布式版本控制系统,可以高效的对大/小项目进行版本管理。

Git有四个工作区域:

  1. 工作目录(Working Directory)

  2. 暂存区(Stage/Index)

  3. 资源库(Repository或Git Directory)

  4. 远程库(Remote Directory)

前三个的管理都是在本地,四个区域的关系如图:


Git使用基础知识介绍_第1张图片
Git工作区域

2. Git配置

Git 全局设置

$ git config --global user.name "name"

$ git config --global user.email "email"

Git Status 中文乱码

$ git config --global core.quotepath false

Git bash 中输入乱码

\Git\etc\inputrc文件

set output-meta on

set convert-meta off

Git 提交、日志 编码格式

$ git config --global i18n.commitencoding utf-8

$ git config --global i18n.logoutputencoding gbk

Linux中,使用ls乱码

ls --show-control-chars

可以编辑 C:\Git\etc\git-completion.bash 文件,添加如下一行:

alias ls="ls --show-control-chars"

SSH证书

生成:

$ ssh-keygen -t rsa -C “your email”

按3个回车,密码为空。

最后得到了两个文件:id_rsa和id_rsa.pub

Windows系统,在用户下面的.ssh目录下,

Linux系统,在home/.ssh目录下,这是隐藏目录,打开隐藏目录快捷键“ctrl”+“h”。

就可以把生成的ssh证书添加到oschina、code.aliyun等git服务器上。

3. Git基础使用

官网入门教程

创建 Git 仓库:

mkdir gitstudy

cd gitstudy

git init

touch README.md

git add README.md

git commit -m "first commit"

git remote add origin xxx.git

git push -u origin master

已有项目:

cd existing_git_repo

git remote add origin xxx.git

git push -u origin master

git remote

添加:git remote add [branchname] [url]

例如:git remote add origin "xxx.git"

删除:git remote rm [remote-name]

.gitignore 文件

在工作区域,添加.gitignore文件,Windows默认不能添加.xx文件,需要在终端新建:

在工作区域打开终端,输入:

$ touch .gitignore

然后就可以用编辑器打开这个文件,或者用vim直接在终端编辑。

内容格式:

file ---忽略file文件

cd/* ---忽略目录cd下的全部内容

*.tar.gz ---忽略所有的以.tar.gz结尾的文件

git status

比较index区与working区

git add

add对象表示,把“Working”区添加到“index”区。

add前,修改或新建的文件为红色状态,add后,变为绿色状态。

  1. git add file (单一文件添加到本地index区)

  2. git add file_1 file_2 (多个文件添加到本地index区)

  3. git add . (把修改或新建的内容全部添加到本地index区)

git commit

commit对象表示,把“index”区添加到“history”区。

git commit -m "message"

git commit -am "commit message"

(注意a的使用,它会提交所有文档,包括未add的红色文件,会直接添加到history区,这是一个坑)

git push

push对象表示,把“history”区添加到“remote”区。

git push [origin] [branch]

例如:

git push origin develop

git branch

查看分支

$ git branch

列出本地git库中的所有分支

$ git branch -a

列出本地git库和远程git库中的所有分支

会有下面输出:

前面带*号表示,当前分支,romotes/代表远程分支。

develop

  • develop-song

remotes/origin/HEAD -> origin/master

remotes/origin/develop

remotes/origin/develop-li

remotes/origin/develop-song

remotes/origin/develop_other

在当前分支下,新建分支:

git branch [branch_name]

例如:

在develop分支下新建develop-song分支,并调到develop-song分支下:

$ git branch develop-song

$ git checkout develop-song

简化:

$ git checout –b 分支名

不但创建了分支,还将当前工作分支切换到了该分支上。

删除分支

删除本地分支:

git branch -d [branch_name]

git branch -D branch_name

删除远程分支

$ git push origin --delete

git log

查看历史日志,包含每次的版本变化。每次版本变化对应一个commit id。

Git log -1

-1的意思是只显示一个commit,如果想显示5个,就-5。

不指定的话,git log会从该commit一直往后显示,按q键退出。

git checkout

切换到某个分支

本地已存在分支,切换分支:

$ git checkout 分支名

导入远程分支到本地

本地未存在分支,远程存在的分支,导入本地:

$ git checkout 分支

从working区返回

如果失误修改了某个文件,把红色状态的文件修改为和服务器一样。

$ git checkout file

git reset

从index区到working区

简单的说就是从绿色变为红色:

git reset -q file

从history区到index

简单的说是commit之后,未push到远程的文件,回滚到绿色状态

git reset --soft HEAD^

git stash

git stash

备份当前的工作区的内容,将当前的工作区内容保存到Git栈中。

git stash pop

从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复.

git stash list

显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。

git stash clear

清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。

git merge

合并分支

方法一:

git merge [origin] [branch_name]

合并分支branch_name到当前分支。

方法二:

git merge “注释” 合并的目标分支 合并的来源分支

方法三:

git pull 合并的目标分支 合并的来源分支

例如:

git checkout master (切换到master分支)

git pull . dev2(合并当前分支和dev2分支)

其他

查看当前分支的操作记录

git whatchanged

获取master的最新更改

git checkout master

下载项目的最新更改

git pull 远端 分支名称 -u

正常开发流程

  1. 创建master分支

  2. 基于remote/master分支,创建自己的开发分支(develop)。

  3. 基于自己的开发分支修改,并提交。

  4. 开发测试。

  5. 提交合并请求。

  6. 版本发布。

你可能感兴趣的:(Git使用基础知识介绍)