Git鼓励大量使用分支:
1、
-- git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
==================== 创建版本库
-- 通过 git init 命令把这个目录变成Git可以管理的仓库
git init
当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的
-- 用命令git add告诉Git,把文件添加到仓库
git add readme.txt
-- 用命令git commit告诉Git,把文件提交到仓库 -m 后面输入的是本次提交的说明
git commit -m "wrote a readme file"
初始化一个Git仓库,使用git init命令。
添加文件到Git仓库,分两步:
第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;
第二步,使用命令git commit,完成。
-------------------
git status 让我们时刻掌握仓库当前的状态
git diff readme.txt
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
===============版本回退
git log
git log --pretty=oneline
git reflog 记录你的每一次命令
--上 一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
git reset --hard HEAD^ 回退到上一个版本
git reset --hard 3628164 3628164...是回退的版本号,没有必要写全,前几位就可以了,Git会自动去找。
================工作区和暂存区
工作区(Working Directory): 就是你在电脑里能看到的目录
版本库(Repository) : 工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库
==========撤销修改
命令 git checkout -- readme.txt 意思就是,把readme.txt文件在工作区的修改全部撤销
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
用命令 git reset HEAD file 可以把暂存区的修改撤销掉(unstage),重新放回工作区
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
==========删除文件
一是确实要从版本库中删除该文件
git rm test.txt
git commit -m "remove test.txt"
另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本
git checkout -- test.txt
分支管理
主分支 master分支
我们创建dev分支,然后切换到dev分支
git checkout -b dev
查看分支:git branch
git branch -a 查看所有远程分支
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
git log --graph 命令可以看到分支合并图
git log --graph --pretty=oneline --abbrev-commit
标签管理
=====创建标签
git tag v1.0
指定某个提交打标签
git tag v0.9 6224937
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 3628164
git tag
git show v0.9
======操作标签
git tag -d v0.1 删除标签
如果要推送某个标签到远程,使用命令
git push origin <tagname>
一次性推送全部尚未推送到远程的本地标签
git push origin --tags
命令git push origin :refs/tags/<tagname>可以删除一个远程标签
==========忽略特殊文件
.gitignore
GitHub
我们第一次推送master分支时,加上了-u参数
git push -u origin master
从现在起,只要本地作了提交,就可以通过命令:
git push origin master
git clone git@github.com:michaelliao/gitskills.git