git入门基础
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入门基础的更多相关文章
- Git入门基础详情教程
前言 写了一篇文章<一篇文章了解Github和Git教程>还觉得不错,继续写了<为了Github默默付出,我想了解你>,那么继续写Git 基础知识. Git 官网:https: ...
- Git入门——基础知识问答
问题一:为什么要选择Git作为Android开发的版本控制工具? 答:1)git是android项目和社区的统一语言. 2)高通版本发布频繁,需要与平台及时同步,快速re ...
- Git入门基础教程
目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...
- Git入门基础教程和SourceTree应用
目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...
- git的基础操作-入门
本文是根据廖雪峰的git教程写的笔记:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...
- git入门学习(二):新建分支/上传代码/删除分支
一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...
- [置顶] 【Git入门之十五】Github操作指南
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12374633 最终篇,介绍一下Github网站的使用,主要是翻译为主,简化了 ...
- 分布式进阶(十六)Zookeeper入门基础
Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...
- git 入门教程
git 入门教程之协同开发 前面我们已经介绍过远程仓库的相关概念,不过那时并没有深入探讨,只是讲解了如何创建远程仓库以及推送最新工作成果到远程仓库,实际上远程仓库对于团队协同开发很重要,不仅仅是团队协 ...
随机推荐
- Codeforces Round #193 (Div. 2) 部分题解
A:直接判断前三项是否相等 int main() { //FIN; //CHEAT; int n; cin>>n; getchar(); ]; gets(a); int len = str ...
- Linux启动(续)
runlevel (启动级别): 查看命令 :who -r 或 runlevel 0:halt 关机 1:单用户模式,直接以管理员身份登录,不需要密码 ...
- 【例题 8-10 UVA - 714】 Copying Books
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二分最后的最大值的最小值. 得到ans 然后从后往前尽量划分. 如果发现不够分成k个. 那么就从第一个开始接着分restk个(每隔1 ...
- 洛谷 P2978 [USACO10JAN]下午茶时间Tea Time
P2978 [USACO10JAN]下午茶时间Tea Time 题目描述 N (1 <= N <= 1000) cows, conveniently numbered 1..N all a ...
- android对话框(Dialog)的使用方法
Activities提供了一种方便管理的创建.保存.回复的对话框机制.比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...
- Java 函数的参数说
java函数参数传递的到底是值还是引用对确实容易让人迷糊.而很多时候因为对这个问题的模糊甚至造成一些错误.最常见的说法是基本类型传的是值,对象传的引用.对于基本类型,大家都达成共识,没有什么可以争论的 ...
- Flume Channels官网剖析(博主推荐)
不多说,直接上干货! Flume Sources官网剖析(博主推荐) 一切来源于flume官网 http://flume.apache.org/FlumeUserGuide.html Flume Ch ...
- mysql中配置ssl_key、ssl-cert、ssl-ca的路径及建立ssl连接(适用于5.7以下版本,5.7及以上请看本文末尾的备注)
1.创建 CA 私钥和 CA 证书 (1)下载并安装openssl,将bin目录配置到环境变量: (2)设置openssl.cfg路径(若不设置会报错,找不到openssl配置文件) \bin\ope ...
- 洛谷 P2368 EXCEEDED WARNING B
P2368 EXCEEDED WARNING B 题目背景 SGU 107 题目描述 求有多少个平方后末尾为987654321的n位数 输入输出格式 输入格式: 整数n 输出格式: 答案,即[b]“平 ...
- Android SimpleAdapter
1.MainActivity.java public class MainActivity extends Activity { private ListView listView; private ...