半亩花田i
平时学习的笔记以及写的demo,仅供参考

基础操作

***初始化GIT仓库:

              git init

***身份配置:

              git config --global user.name "您的名字"
              git config --global user.email "您的邮箱"

***创建一个新仓库:

              mkdir learngit

***进入到仓库目录:

              cd learngit

***查看目录路径:

              pwd

***添加文件到Git仓库(可多次添加):

              git add

***添加文件时的备注信息:

              git commit -m "备注信息"

***文件修改过之后查看当前仓库状态:

              git status

***文件修改过如果要查看具体修改过什么内容(显示差异):

              git diff 文件名

版本回退

***查看提交的历史记录:

git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file,也可以通过提交的时间来查看。

***如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:

提示:这里看到的一长串数字就是类似f4a6761c4....就是commit id(版本号)

***如果要把当前版本回退到上一个版本:

              git reset --hard HEAD^

***查看具体版本内容是否是上一个版本:

              cat 文件名

注意:HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

***当版本回退成功之后还想找回之前的版本(只要命令行未关闭,然后找到之前版本的commit id,这个时候就可以回到之前的版本了):

              git reset --hard f4a67

版本没必要写全,前几位就可以了。

版本回退图,只需要切换HEAD的指针即可:

 

***现在,如果说你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?

Git提供了一个命令git reflog用来记录你的每一次命令:

 找到了commit id,这个时候就可以找到之前的版本了。

修改管理

***查看工作区和版本库最新版本的区别:

              git diff HEAD -- aaa.txt

***丢弃工作区的修改(在文件未添加的情况下,需要将工作区的全部修改撤销)/另外在删错文件的情况下(版本库里还存在此文件,需要把误删的文件恢复到最新版本):

              git checkout -- aaa.txt

***也可以通过git reset HEAD 可以把暂存区的修改撤销掉,重新放回工作区(git reset不光可以回退版本,也可以把暂存区的修改回退到工作区,我们用HEAD时,表示最新的版本)

              git reset HEAD

删除文件

***删除工作区的文件:

              rm aaa.txt

***删除版本库的文件:(记得删除之后commit提交文件)

              git rm aaa.txt

远程分支跟踪(否则每次提交都必须要指定想要push或者pull的远程分支(例如):git push origin new 

              git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字

远程仓库

***克隆到本地(如果说别人仓库的项目,需要克隆到自己仓库,点击“Fork”即可。):

              git clone git@github.com:michaelliao/gitskills.git

Git支持多种协议,包括https,ssh,使用https速度较慢,而且每次推送都需要输入口令;默认使用ssh.

分支管理

***创建分支(创建分支:git branch 分支名----切换分支:git checkout 分支名):

              git checkout -b dev

***分支上传:

              git push origin dev

***查看分支:

              git branch

***查看全部分支(远程和本地的):

              git branch -a

***分支切换:

              git checkout master

***合并分支(Fast-forward:快捷合并):

              git merge dev

***删除本地分支:

              git branch -d dev

***删除远程分支:

              git push --delete origin dev

***查看分支合并图(git log --graph --pretty=oneline --abbrev-commit简洁版):

              git log --graph

***准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward:

              git merge --no-ff -m "merge with no-ff" dev

***更新远程分支

            git fetch

***查看远程分支

            git branch -r

***查看本地分支

            git branch -l

因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去;加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

※ bug分支

 

posted on 2018-08-14 10:23  半亩花田i  阅读(123)  评论(0编辑  收藏  举报