关闭

git学习笔记

标签: git
145人阅读 评论(0) 收藏 举报
分类:

git学习笔记

参考资料:https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5

1. git的四个工作区

  1. 工作区Working Area
  2. 暂存区Stage
  3. 本地仓库 Local Repository
  4. 远程仓库 Remote Repository

关系见图:

git关系图

2. 5种状态

未修改(Origin):原始文件
已修改(Modified)
已暂存(Staged)
已提交(Committed)
已推送(Pushed)

操作关系图:
操作关系图

3. git配置

三个配置文件:

  • /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 –system 选项,读写的就是这个文件。
  • ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 –global 选项,读写的就是这个文件。
  • .git/config 当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。

每一层都会覆盖上一层的同名配置。使用 –system, –global, –local and –file 选项操作对应的配置文件

  • git config –global user.name “username” 和 git config –global user.email “your email” 设置自己的信息、便于管理更改信息

3.2 设置git忽略的文件

cat .gitignore

# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt

4. git的基本操作

  • git init 初始化git仓库、/.git/
  • git clone git://github.com/schacon/grit.git 克隆一个仓库

  • git status 检查仓库文件状态

把文件添加到git暂存区

  • git add octocat.txt
  • git add ‘*.txt’

  • 取消已经暂存的文件:

    • git reset HEAD …” to unstage
  • 从暂存区移除文件:

    • git rm –cached … unstage文件
  • 取消已进行的修改

    • git checkout –

提交文件到本地仓库

  • git commit -m “commet message”
  • git commit -m “remove all the cats”

修改上一次的提交
git commit –amend 修改上一次提交

  • git log 查看日志

    1. 查看远程仓库

      • git remote
      • git remote add origin https://github.com/try-git/try_git.git
      • master 本地分支名字、orgin 远程名字

      • git remote show 显示所有远程库信息

      • git remote rename
      • git remote rm
    1. 从远程仓库抓取数据
      • git fetch [remote-name]

    fetch、pull的差别:

    需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。参考:https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E8%BF%9C%E7%A8%8B%E5%88%86%E6%94%AF

    使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。

从本地仓库提交到远程仓库

git push [remote-name] [branch-name]
git push (远程仓库名) (本地分支名)
  • git push -u origin master -u表示记住master、origin
  • git pull origin master 拉取远程改变

查看文件差别:

    1. 查看本地修改、未被暂存代码、
      • git diff HEAD
  • 2.查看已经暂存、但是未被提交到本地仓库的代码

    • git diff —-staged(和cached效果相同)
    • git diff –cached
  • 3.查看本地仓库和远程仓库的差别

    • git diff master origin/master

    • git reset …

分支管理

git分支的基本内容:
https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E4%BD%95%E8%B0%93%E5%88%86%E6%94%AF

分支的合并:

  • git branch clean_up 创建一个分支

  • 查看分支:

  • git branch -a //查看所有分支、包含本地与远程
  • git branch -r //查看远程分支
  • git branch -d 删除一个分支
  • git branch -m(-M) 给分支进行管理
  • git branch -v 查看分支最后一个提交对象的信息
  • git branch –merged 合并的 –no-merged 未合并的信息

  • git checkout clean_up 切换分支

  • git checkout – 恢复文件最初的状态

- git checkout -b iss53 新建并切换到新的分支上

  • git rm ‘*.txt’ 删除所有的文件

分支的合并:

合并分支到当前分支:

- git merge clean_up

冲突的合并

  • git push push所有的东西到仓库、

合并分支需求:
git push origin jasonye_branch:develop

留心你的暂存区或者工作目录里,那些还没有提交的修改,它会和你即将检出的分支产生冲突从而阻止 Git 为你切换分支。切换分支的时候最好保持一个清洁的工作区域。

  • git stashing
  • git commit amending

rebase 分支的基变化

打标签

  1. git tag 列出已有标签
  2. git tag -l ‘v1.4.2.*’
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Git学习笔记总结和注意事项

21、git tag tagname:创建标签 22、git show tagname:查看标签信息。注意:标签不是按时间顺序列出,而是按字母排序的。 23、git tag -a tagname ...
  • u011043843
  • u011043843
  • 2014-06-28 21:07
  • 1797

git本地共享库

1   Administrator@DD-20150303FPEN MINGW32 ~ (master)   $ git config --global user.name xxxxxx...
  • yetaimei11
  • yetaimei11
  • 2017-05-21 14:33
  • 337

git笔记 (根据廖雪峰git教程整理)

创建版本库 初始化一个Git仓库,使用git init命令。 添加文件到Git仓库,分两步: 第一步,使用命令git add ,注意,可反复多次使用,添加多个文件...
  • u012804178
  • u012804178
  • 2016-07-27 14:52
  • 1668

Git入门学习和使用

开篇废话 开篇废话又回来了,离开博客算是有一年了,之间曾经痛下很多次决心,继续写博客,后来都失败了,前年为了申请个CSDN专家,每天发博客,那个高产的状态,现在已然不行了,时过境迁,当时为了吃口饱饭...
  • TonyShengTan
  • TonyShengTan
  • 2016-07-23 17:14
  • 3153

Guava代码学习笔记

Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra...
  • mm_bit
  • mm_bit
  • 2016-04-14 20:26
  • 829

三个免费的交互式Git学习网站

转载自:http://www.open-open.com/lib/view/open1420508778375.html Git 是一个强大的版本控制工具,但学起来真的好枯燥、很痛苦;但你又...
  • nolan_coder
  • nolan_coder
  • 2016-10-27 14:58
  • 441

git 笔记记录(六) git检出

1.上一节讲了重置命令,重置命令是修改了引用的游标指向,重置命令所针对的是头指针HEAD,之所以没有修改HEAD内容,是因为HEAD指向了一个引用refs/heads/master,所以重置命令体现为...
  • bluceshang
  • bluceshang
  • 2013-11-22 11:28
  • 3110

使用github实现共享代码的一些入门级教程

github与git的使用入门
  • q2878948
  • q2878948
  • 2017-05-29 19:35
  • 816

Git 学习初始篇

Gitwhat is Git重点:强大的代码管理工具!为什么使用?重点:使用github社区必备,而且确实方便高效。git与svn区别 svn将代码放于中央服务器;git属于分布式版本控制系统,每个版...
  • Louislip
  • Louislip
  • 2016-11-13 23:00
  • 896

使用Git命令心得总结---附上.gitconfig

前言分享和汇总下工作中用GIT和小伙伴的一些命令及简写
  • bomess
  • bomess
  • 2016-08-30 23:49
  • 721
    个人资料
    • 访问:286032次
    • 积分:2465
    • 等级:
    • 排名:第17313名
    • 原创:51篇
    • 转载:68篇
    • 译文:0篇
    • 评论:100条
    文章分类