Git 学习笔记

来源:互联网 发布:linux下怎么ping 编辑:程序博客网 时间:2024/05/04 12:08

准备学下git,才发现1年前就在电脑上装上git了。当时PySide的windows版尚未出来,用它下载了PySide的源码,后来因编译未果,竟然把这事忘了。

Git?

词典中解释:

git  [ɡit] n.饭桶,无用的人

由此而来?

git: The stupid content tracker(傻瓜内容追踪器)

简单点说:

Git 是一个由 Linus Torvalds 创建的源代码管理软件

官方说法:

Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,
对内部系统提供了高级操作和完全访问。

当我们讨论Git时,可能指代两种东西(后者是我们关心的):

  • 内容追踪 :git探索?本质?(git plumbing)

    • git-fetch-pack, git-send-pack, git-hash-object等命令
    • ...
  • 源代码管理器 :git外壳?(git porcelain)

    • git commit 等命令 (git默认的外壳)
    • 其他外壳: easy-git, yap, widgit, darcs-git.py 等

安装

  • ubuntu下:
    • 安装 git-core, gitk, git-gui 3个包
  • windows下:
    • 安装 msysgit 或 TortoiseGit(据说还不太完善,但很值得一试)

  • 注:
    • gitk is a simple Tcl/Tk GUI for browsing history of Git repositories easily, distributed with Git.

    • git-gui is a tool for creating commits and managing branches. Written in Tcl/Tk. Stable versions are shipped with Core Git since version 1.5.

部分命令

最重要一个:

  •  git help

创建仓库

本地创建

git init

克隆远端

git clone

stage 操作

添加

git add

查看状态

git status

查看差别

git diff

提交

git commit

unstage

git reset HEAD

移除

git rm

分支(branch)操作

列出

git branch

创建

git branch branchname

切换

git checkout branchname

删除

git branch -d branchname

合并

git merge branchname

  • 创建和切换可以合并成
    git checkout -b branchname

远端仓库(remote repository)操作

管理

git remote [add rm ...]

拉取内容 ↓

git fecth alias

拉取内容(merge) ↓

git pull alias

推送内容 ↑

git push alias branch

  • pull 相当于 fetch 和 merge 两条命令

几条与svn对比的命令:

查看diff

git diff

svn diff | less

查看diff

git diff rev path

svn diff -rrev path

应用patch

git apply

patch -p0

恢复

git checkout path

svn revert path

提交

git commit -a

svn commit

注意事项

  • Google到的不少资料都是git 1.4之前的。所以要注意看官方的文档。
  • git 的 master 分支 不同于 subversion 的 trunk!
It’s a common error to think of the master branch as being equivalent to Subversion’s trunk. However, a custom development branch is much closer in practice to the Subversion trunk, where experimental work is done.
  • 不同于svn,分支不是单独的目录。需要自己跟踪各个分支?
  • 每次commit时需要用户名和email。设置:
$ git config --global user.name 'Your Name'$ git config --global user.email you@somedomain.com
  • git 有个以stage的概念,所有的东西提交之前需要加入到staged区域
    • 可以使用 git commit -a 来避免繁琐的添加

    • 注意 git reset HEAD 的含义。只是 unstage !

参考

  • http://git-scm.com/documentation

  • http://gitref.org/

  • http://git-scm.com/course/svn.html

  • http://linux.yyz.us/git-howto.html

  • https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 索尼记录仪密码忘了怎么办 索尼z3手机忘记开机密码怎么办 索尼忘记锁屏密码怎么办 索尼手机忘记锁屏密码怎么办 忘了手机解锁图案怎么办 索尼手机忘记开机密码怎么办 索尼笔记本开机密码忘了怎么办 手机的开机密码忘了怎么办 联想手机开机密码忘了怎么办 红米note3忘记开机密码怎么办 小米2忘了密码怎么办 小米笔记本电脑忘记开机密码怎么办 小米笔记本忘记开机密码怎么办 小米手机儿童模式忘记密码怎么办 小米应用锁密码忘了怎么办 小米air密码忘了怎么办 小米4密码忘了怎么办 小米手机开机密码忘了怎么办? 小米笔记本电脑开机密码忘了怎么办 小米笔记本开机密码忘了怎么办 htc手机忘记解锁图案怎么办 红米手机屏幕锁定怎么解锁怎么办 小米5s有id怎么办 手机密码找不回来了怎么办? 手机密码图案忘了怎么办 手机屏幕图案锁忘了怎么办 捡到苹果7有id锁怎么办 魅族什么都忘了怎么办 海信电视百事通登陆失败怎么办 去哪儿换号了怎么办 ipan充不进去电怎么办 安卓数据线松了怎么办 索尼z5耳机掉漆怎么办 索尼z5无限重启怎么办 苹果8基带坏了怎么办 oppo手机忘记图案密码怎么办 电池充不进去电怎么办 电脑充不进去电怎么办 苹果5c白苹果怎么办 港行不支持电信卡怎么办 安卓导航不开机怎么办