美文网首页
Git一些常用方式

Git一些常用方式

作者: 舞动梦想 | 来源:发表于2017-12-07 16:07 被阅读16次

git简介

Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次
Linus在1991年创建了开源的Linux,然后创建git

git安装

查看:git
Debian或Ubuntu Linux,通过一条sudo apt-get install git
ebian或Ubuntu Linux: sudo apt-get install git-core,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuit,git-core正式改为git。

果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。

Mac OS X上安装Git

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/

第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

image

在Windows上安装Git

在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!


image

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit

第二步,通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

把文件添加到版本库

编写一个readme.txt文件

Git is a version control system.
Git is free software.

第一步,用命令git add告诉Git,把文件添加到仓库:

$ git add readme.txt

第二步,用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "wrote a readme file"
[master (root-commit) cb926e7] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
为什么Git添加文件需要add,commit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

查看结果:git status
查看修改内容 git diff

版本回退

查看历史 git log 出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

回退命令:git reset git reset --hard HEAD^
查看文本内容 cat readme.txt
git reset --hard 3628164 回退到具体版本

查看 命令历史 git reflog

连续修改

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

撤销修改

git checkout -- file

git reset HEAD file可以把暂存区的修改撤销掉(unstage)

删除

一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit:

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
git checkout -- test.txt

远程仓管

1 本地创建, 关联现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:

git remote add origin git@github.com:michaelliao/learngit.git
git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

git push origin master

2 远程克隆
命令行进入一个文件夹

git clone git@github.com:michaelliao/gitskills.git

分支管理

首先,我们创建dev分支,然后切换到dev分支:

git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

用git branch命令查看当前分支:

$ git branch
* dev
  master

把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

删除dev分支了:

$ git branch -d dev
Deleted branch dev (was fec145a).

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>

冲突

参数的git log也可以看到分支的合并情况:

$ git log --graph --pretty=oneline --abbrev-commit
*   59bc1cb conflict fixed
|\
| * 75a857c AND simple
* | 400b400 & simple
|/
* fec145a branch test
...

分支管理策略

Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息
备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

$ git merge --no-ff -m "merge with no-ff" dev
Merge made by the 'recursive' strategy.
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

bug分支

stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

工作区是干净的,刚才的工作现场存到哪去了?用git stash list命令看看:

$ git stash list
stash@{0}: WIP on dev: 6224937 add merge
工作现场还在,Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:

接着回到dev分支干活了!
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;

另一种方式是用git stash pop,恢复的同时把stash内容也删了:

查看远程库 git remote:git remote -v显示更详细的信息:

相关文章

  • Git log 统计

    git log使用方式参考Git使用---git log,下面给出一些常用的统计。 1、统计某人的代码提交量,包括...

  • Git一些常用方式

    git简介 Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档...

  • Git核心命令的分组对比总结

    git中有一些命令非常相似,使用时容易混淆。本文采用对比的方式总结了git中常用的一些核心命令。 第一组:git ...

  • git常用方式

    init --初始化一个本地git仓库 status --查看当前仓库状态 log --查看提交记录 reflog...

  • Git命令记录

    Git命令是一种免费开源的分布式版本控制系统,是团队中常用的一种开发方式。以下是一些工作中常用的命令。 安装Git...

  • GIt 操作补充

    常用的git操作命令 常用的git操作命令已经能够满足日常的工作需求 现补充一些高级命令 git branch -...

  • Git常用命令

    无论我们的项目是否需要与他人协同开发,都会用到Git的一些常用命令。下面介绍一些常用的Git命令,包括git he...

  • Git常用命令

    Git 常用命令总结 git的一些基础命令 Git常用命令 一般配置 登录git 创建一个文件夹 初始化git仓库...

  • 如何降级 Flutter SDK ??

    常用方式 flutter使用git进行版本控制,可以使用的git branch进行修改 flutter chann...

  • Git 小记

    记录Git常用的一些操作 初始化仓库 git init 添加文件 git add filename 单个文件git...

网友评论

      本文标题:Git一些常用方式

      本文链接:https://www.haomeiwen.com/subject/tbndixtx.html