git学习笔记

标签: git
236人阅读 评论(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.*’
查看评论

GIT学习笔记

  • 2015年09月07日 09:45
  • 869KB
  • 下载

Git学习笔记

  • 2016年02月22日 17:15
  • 15KB
  • 下载

git自我学习笔记

  • 2017年11月10日 11:18
  • 4.47MB
  • 下载

GitHub学习笔记

  • 2015年08月26日 11:51
  • 864KB
  • 下载

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

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

Git 学习记录

  • 2017年09月29日 11:02
  • 1.25MB
  • 下载

Git 个人学习笔记及心得

一、认识 GitHub Git 是个版本控制系统,说明白点就是进行代码的各种管理,比如你写错代码回滚啊、追寻 bug 是哪个家伙造成的啊(邪恶脸)、合并别人代码等等,达到协同进行软件的开发工作。再多...
  • u012195214
  • u012195214
  • 2018-01-28 20:15:41
  • 233

Git/GitHub学习笔记

0x00 前言Git是一款免费、开源的分布式版本控制系统,他是由Linux发明者Linus Torvalds开发的。GitHub主要提供基于git的版本托管服务,是全球最大的开源社区。Git只是Git...
  • swjtu100
  • swjtu100
  • 2016-08-17 14:25:59
  • 398

ngrinder学习笔记

ngrinder第一个脚本定义package org.ngrinder; import static net.grinder.script.Grinder.grinder import static...
  • qq_30534535
  • qq_30534535
  • 2016-04-21 09:35:43
  • 499

【转】简单使用Git和Github来管理自己的代码和读书笔记

以前不知道使用代码管理工具,最后写的一些东西都没有了,由于硬盘坏了或者不小心格式化了之类的,后来使用了Git和Github来托管自己的代码和读书笔记方便了不少,到哪里只要有网就可以把自己的东西拷贝下来...
  • qq_19925065
  • qq_19925065
  • 2017-01-15 18:51:11
  • 360
    个人资料
    等级:
    访问量: 29万+
    积分: 2360
    排名: 1万+