第一章 初始化
现在总结一下今天学的两点内容:
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
● 第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
● 第二步,使用命令git commit,完成。
第二章 查看文件状态
3. 要随时掌握工作区的状态,使用git status命令。
4. 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
第三章 退回版本
4. git log可以查看提交历史版本。
5. 使用命令git reset --hard commit_id。到哪个版本
6. 用git reflog查看命令历史,git reset --hard commit_id到哪个版本
第四章 工作区-版本库
现在,你又理解了Git是如何跟踪修改的,每次修改,如果不add到暂存区,那就不会加入到commit中。
第五章 撤销
$ git checkout -- readme.txt
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。
$git reset HEAD file
既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
还记得如何丢弃工作区的修改吗?
$ git checkout -- readme.txt
第六章 恢复文件
先把文件add和commit到版本库中
若是在资源管理器中误删了文件只需要git checkout – file
第七章 ssh key
第1步: SSH Key:
$ ssh-keygen -t rsa -C "yousun@cisco.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
第八章 关联远程
要关联一个远程库,使用命令
git remote add origin git@server-name:path/repo-name.git;
关联后,使用命令
git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令
git push origin master推送最新修改;
第九章 clone
$ git clone git@github.com:michaelliao/gitskills.git
第十章 创建分支
查看分支:git branch
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
第十一章 合并
$ git merge feature1
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1
Creating a new branch is quick & simple.
Creating a new branch is quick AND simple.
第十二章 分支管理
表示禁用Fast forward:
$ git merge --no-ff -m "merge with no-ff" dev
第十三章 Bug分支
先保存“现场”git stash
切换到主分支git checkout master
创建并切换到bug分支 git checkout –b issue-101
Git add->git commit –m
切换到主分支master
Git merge –no-ff –m “”issue-101 –>git branch –d issue-101
切换到dev分支
Git stash list--> git stash apply stash@{0}-->git stash drop
第十四章 Feature分支
添加新功能,需要新加新分支
$ git checkout -b feature-vulcan
$ git add vulcan.py
$ git commit -m "add feature vulcan
切回dev,准备合并
删除feature-vulcan分支
第十四章 多人协作
查看远程库信息 git remote –v 或git remote
推送到远程推送dev分支$ git push origin dev
-----------------------------------------------
抓取分支$ git clone git@github.com:michaelliao/learngit.git
默认情况下,你的小伙伴只能看到本地的master分支
$ git branch
* master
你的小伙伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,
$ git checkout -b dev origin/dev
现在,他就可以在dev上继续修改,时不时地把dev分支push到远程:
$ git commit -m "add /usr/bin/env"
$ git push origin dev
此时,你也在push,然后就有冲突
$ git add hello.py
$ git push origin dev
push冲突
git pull(git pull也失败了,指定本地dev分支与远程origin/dev分支的链接)
$ git branch --set-upstream dev origin/dev
在pull(成功但是有冲突手动解决冲突)
最后 push
第十五章 标签管理
先查看cimmit id $ git log --pretty=oneline --abbrev-commit
git tag v0.1 11fc
git show v0.1
若是查看标签 git tag
删除标签 git tag –d v0.1
推送标签到远程 git push origin v0.9
(推送所有的标签$ git push origin --tags)
删除远程标签
Git tag –d v0.9
Git push origin :refs/tags/v0.9
第十六章 综合练习
删除远程分支git push origin :branch-name
提交所有修改$ git add .
从git add状态退回到工作区的状态 git checktout
4.1开放模式负责设置过滤哪些文件和文件夹
过滤文件夹设置:
/mtk/ 表示过滤这个文件夹
过滤文件设置:
指定过滤某种类型的文件:
*.zip
指定过滤某个文件:
/mtk/if.h
4.2保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。
跟踪某个文件夹
!/plutommi/mmi
跟踪某类文件
!*.h
跟踪某个指定文件
!/plutommi/mmi/mmi_features.h