git基础

参考:

官网git基础

git 文件的生命周期

文件的生命周期图:

git中的文件可以分为4个阶段.

  • Untracked : 这是目录中没有被跟踪的文件,即不在git项目中,使用 git commit 等命令对文件进行提交时不会提交这样的文件。只有使用 git add file_name 将文件添加到git 工程中,该文件才会得到分享,转换到Staged状态。除了这个状态,其他3个状态指的都是被跟踪的文件

  • Unmodified:git工程中没有经过改动的文件,即up-to-date的文件,处于当前状态的文件一旦被改动,则将会变文 Modified 状态。使用 git remove 指令可以将该状态下的文件变成Untraked 状态。

  • Modified:被改动过的文件待添加到 Staged 中的文件。

  • Staged : 等待更新到下一个生命周期的文件,commit 命令将会将处于该状态的文件进行提交,确认更改,这样一来文件又重新回到未修改状态,Unmodified。

git环境配置:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
$ git config --global core.editor emacs
$ git config --list

git 的基本命令

转到需要初始化的目录下,运行下面的命令,初始化一个已经存在的目录为git目录.

$ git init

从github上克隆一个工程目录,下面两条指令中的一个,区别在于是否另起目录名

$ git clone /https://github.com/libgit2/libgit2
$ git clone /https://github.com/libgit2/libgit2 NewDirectoryName

获取文件状态 ,第二条指令表示状态的缩写版

$ git status
$ git status -s

跟踪新的文件,文件状态从 untracked 变成 staged。

$ git add YourNewFileName

在目录下添加.gitignore文件,可以设置自动忽略的文件GitHub的ignore文件示例

查看已经被修改但没有Staged的文件

$ git diff

查看staged中即将被commit的文件有什么不同

$ git diff --staged

查看你目前已经Staged的所有文件

$ git diff --cached

提交修改,即提交Staged状态下的文件

_其第一条指令会在terminal打开默认的编辑器,让你写入相关信心,可以使用:git config --global core.editor 命令设置编辑器

$ git commit
$ git commit -m 'some message about your committing'

删除文件

>从目录删除
$ rm PROJECT.md
>从stage删除
$ git rm PROJECT.md
>不再跟踪文件
$ git rm --cached README

Moving Files

$ git mv fileFrom fileTo

查看日志 $ git log





撤销指令

撤销上一次commit操作
$ git commit --amend
将sraged中的文件撤回(unstaging a staged file)
$ git reset HEAD CONTRIBUTING.md
撤销你所做的修改(discard the changes you've made)
$ git checkout -- CONTRIBUTING.md

远程服务器

克隆一个远程项目
$ git clone https://github.com/schacon/ticgit
显示你的远程项目(Showing Your Remotes)
$ git remote -v
添加远程工程(Adding Remote Repositories)
命令句式:git remote add <shortname> <url>
$ git remote add pb https://github.com/paulboone/ticgit
Fetching and Pulling Your Remotes
$ git fetch [remote-name]
$ git push [remote-name] [branch-name]
Inspecting a Remote
$ git remote show [remote-name]
$ git remote show origin
Removing and Renaming Remotes
$ git remote rename pb paul
Removing (git remote remove or git remote rm)
$ git remote remove paul

Tagging

list your Tags
$ git tag
v0.1
v1.3
search by pattern
$ git tag -l "v1.8.5*"
Create Tags and Annotated Tags
$ git tag -a v1.4 -m "my version 1.4" ß
$ git show v1.4

Lighweight Tags,轻量标签只存储校验和

$ git tag v1.4-lw
$ git tag

为以前提交的版本设置标签,Tagging Later

首先使用git log 查看每个版本的校验和,然后使用git tag根据校验和设置标签,例子如下所示:

$ git log --pretty=oneline
15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch 'experiment'
a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support
0d52aaab4479697da7686c15f77a3d64d9165190 one more thing
6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch 'experiment'
0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function
4682c3261057305bdd616e23b64b0857d832627b added a todo file
166ae0c4d3f420721acbb115cc33848dfcc2121a started write support
9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile
964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo
8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme
$ git tag -a v1.2 9fceb02

分享标签,默认情况下,git push指令不会将标签上传到远程服务器上。这个操作需要自己显式的完成:git push origin [tagname]. 第二条指令式push所有标签。

$ git push origin v1.5
$ git push origin --tags

移除标签,在git中不能真正的删除标签。只能添加一个新的分支。(git checkout -b [branchname] [tagname]: )

$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'

Git Aliases

git中可以为变量名或者项目取缩写名,这个可以参考官网。

Github

https://help.github.com/articles/adding-a-remote/

git入门基础的更多相关文章

  1. Git入门基础详情教程

    前言 写了一篇文章<一篇文章了解Github和Git教程>还觉得不错,继续写了<为了Github默默付出,我想了解你>,那么继续写Git 基础知识. Git 官网:https: ...

  2. Git入门——基础知识问答

    问题一:为什么要选择Git作为Android开发的版本控制工具?     答:1)git是android项目和社区的统一语言.            2)高通版本发布频繁,需要与平台及时同步,快速re ...

  3. Git入门基础教程

    目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...

  4. Git入门基础教程和SourceTree应用

    目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...

  5. git的基础操作-入门

    本文是根据廖雪峰的git教程写的笔记:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...

  6. git入门学习(二):新建分支/上传代码/删除分支

    一.git新建分支,上传代码到新的不同分支  我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...

  7. [置顶] 【Git入门之十五】Github操作指南

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12374633 最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了 ...

  8. 分布式进阶(十六)Zookeeper入门基础

    Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...

  9. git 入门教程

    git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ...

随机推荐

  1. 洛谷 P3386 【模板】二分图匹配 Dinic版

    题目背景 二分图 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+1行,每行两个正整数u,v,表示u,v有一条连边 ...

  2. 暴力破解FTP服务器技术探讨与防范措施

    暴力破解FTP服务器技术探讨与防范措施 随着Internet的发展出现了由于大量傻瓜化黑客工具任何一种黑客攻击手段的门槛都降低了很多但是暴力破解法的工具制作都已经非常容易大家通常会认为暴力破解攻击只是 ...

  3. 实际感受美丽的Linux(多组视频)

    1.Fedora 上使用google earth 2.体验桌面-GNOME 2.2.9 3.体验桌面-KDE4.4 永中Office使用演示(和MS Office 2003很相似哦) 4.在Fedor ...

  4. Hp Open View安装使用视频

    去年完成的cisco works 2000操作(http://chenguang.blog.51cto.com/blog/350944/124729)视频深受广大博友欢迎许多人来信咨询,最近刚做完一个 ...

  5. Java Web学习总结(2)——Servlet入门

    一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...

  6. C++ 指针与引用 知识点 小结

    [摘要] 指针能够指向变量.数组.字符串.函数.甚至结构体.即指针能够指向不同数据对象.指针问题 包含 常量指针.数组指针.函数指针.this指针.指针传值.指向指针的指针 等. 主要知识点包含:1. ...

  7. zookeeper 配置文件说明(zoo.cfg)

    clientPort      # 客户端连接server的port,即对外服务port,一般设置为2181. dataDir        # 存储快照文件snapshot的文件夹. 默认情况下.事 ...

  8. Xamarin开发手机聊天程序

    使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)   如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin 无疑是 ...

  9. cookie记住用户名密码

    <script src="js/jquery.cookie.js" type="text/javascript"></script> $ ...

  10. tensorflow compile

    bazel  build  --spawn_strategy=standalone tensorflow/examples/label_image/...