Git学习笔记

命令注解

  • add
    跟踪文件或者将已修改过的文件放至暂存区
    git add <file>:暂存file文件
    git add --a:暂存所有改动
  • commit命令:提交暂存区文件
  • add之后的文件属于已暂存(staged)状态。commit之后属于已提交(committed)状态
  • 从跟踪清单中删除(也就是不跟踪)
    $ git rm –cached readme.txt

fetch

  • 如果是克隆了一个仓库,此命令会自动将远程仓库归于 origin 名下。所以,git fetch origin 会抓取从你上 次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。
  • fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支
  • 比如如果远端仓库上新建了一个分支serverfix ,本地仓库上并不会自动增加serverfix 分支,而是只有一个你无法移动的 origin/serverfix 指针)

pull

  • 自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支
  • 如果设置了某个分支用于跟踪某个远端仓库的分支(参见下节及第三章的内容),可以使用git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支。在日常工作中我们经常这么用,既快且好。实际上,默认情况下git clone 命令本质上就是自动创建了本地的master 分支用于跟踪远程仓库中的master 分支(假设远程仓库确实有master 分支)。所以一般我们运行git pull,目的都是要从原始克隆的远端仓库中抓取数据后,合并到工作目录中当前分支。

push

  • $ git push origin serverfix
    意为“取 出我的 serverfix 本地分支,推送它来更新远程仓库的 serverfix 分支”
  • git push origin serverfix:serferfix
    意为“提取我的 serverfix 并更新到远程仓库的 serverfix”
  • 只有在所克隆的服务器上有写权限,或者同一时刻没有其他人在推数据,这条命令才会如期完成任务。如果在你推数据前,已经有其他人推送了若干更新,那你的推送操作就会被驳回。你必须先把他们的更新抓取到本地,并到自己的项目中,然后才可以再次推送

clone,fetch,pull的差别

  • clone:完整的复制,从无到有的时候使用
  • fetch:将远端仓库的信息同步(只是信息)
  • pull:拉取远端分支内容并merge到本地分支

查看比较

  • git status:查看文件状态
  • 比较差异
    未暂存内容的比较:git diff
    已暂存内容的比较:git diff –staged

关于远端仓库

  • 仓库指明方式(rainyslr的studycpp仓库为例)
    • http
      https://github.com/rainyslr/studycpp.git
      使用该种方式指定origin时,每一次提交都需要输入用户名和密码
    • ssh
      git@github.com:rainyslr/studycpp.git
      该种方式无需输入用户名和密码
  • origin:clone时自动将远端仓库的命名为origin
  • 添加远端仓库
    git remote add 远端仓库的本地别名 仓库地址

分支操作

查看本地分支

git baranch当前工作分支前会有一个星号)

查看所有分支

git baranch -a当前工作分支前会有一个星号)

创建本地分支

git branch 新分支名字或者git checkout -b 新分支名字
特别注意:这两个命令是在当前分支的基础上创建新的本地分支。如果当前分支为a,远端仓库上有a分支和b分支,那么使用git branch b命令之后本地的b分支是与本地分支a相同,而非与远端b分支相同。若要与远端b分支相同,应该跟踪远端b分支(详见后文)

切换分支

checkout 目标分支名

合并分支

git checkout master
git merge iss53
将iss53合并至master(当前工作分支为master)

查看已(未)合并到当前分支的分支

git branch --merged
git branch --no-merged

remote show 远端仓库名

显示该仓库中哪些分支已经被跟踪,以及为pull配置的本地分支,为push配置的本地引用

跟踪分支

从远程分支检出的本地分支,称为跟踪分支(tracking branch)。跟踪分支是一种和远程分支有直接联系的 本地分支。在跟踪分支里输入 git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。反过来,在 这些分支里运行 git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。
git checkout -b [分支名] [远程名]/[分支名]
或者:git checkout --track origin/serverfix

删除远端分支

git push origin --delete new

删除本地分支

git branch -d 本地分支名

分支要点

  • 未建立跟踪关系时,本地分支和远端分支没有任何关系,即使两个分支同名

恢复版本

git reset –hard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值