Git

:创建一个git可管理的仓库(repository)

  • 打开GitBash
  • 1、进入位置(例如进入D)
  • $ cd D://
  • $ ls 文件列表
  • 2、在D盘创建本地文件夹,自定义名为:LearnGit
  • $ mkdir LearnGit
  • 3、进入到版本库位置
  • $ cd LearnGit
  • 4、显示当前目录
  • $ pwd
  • 5、通过git init 命令把这个目录变成一个git可管理的仓库(repository)

 

:在仓库路径下创建文件,然后添加到仓库(例如:创建两个txt文件,分别为one.txt;two.txt

    添加文件到Git仓库,分两步:

  • 第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件(可使用git add .

    如果是文件夹可使用git add file/*

  • 第二步,使用命令git commit,完成。(commit是指所有的add的文件)git commit -m "XXX"

    修改了one.txt;two.txt的内容

  • 1、使用notepad修改文本内容
  • 2、使用git status查看修改的内容

 

  • 3、使用git diff查看具体修改(查看完毕后,在使用1中方法将修改的文件addHeadcommitrepository)

 

  • 4git log命令显示从最近到最远的提交日志(出现END可按q退出log
  • 5、如果嫌输出信息太多,可以试试加上git log --pretty=oneline参数

 

 

 

三、回退到上一个版本

  • 1、首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的e55848..47c,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
  • 使用git reset --hard HEAD^ 回退到上一个版本
  •  

 

  • 2、查看是否是上一个版本的内容,可使用cat file查看file的内容
  •  

 

  • 3、使用git log查看,已看不到删除的版本
  •  

 

  • 4、如果命令窗还未关闭,可使用git reset --hard 版本号,回到未来的版本,即刚删除的版本

 

  • 5、关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?
  • 在Git中,总是有后悔药可以吃的
  • 使用git reflog

 

四:HEAD相关命令

  • $ git diff HEAD -- file.txt命令可以查看工作区和版本库里面最新版本的区别
  • $ git checkout -- file.txt 用版本库里的版本替换工作区的版本,(可撤销本地修改,如没有--,则变为“创建一个新分支”)
  • $ git reset HEAD file.txt 撤销缓存区的内容
  • $ git rm file1.txt 删除一个文件(本地删除后,在git中同样需要remove此文件,且commit此次修改)

 

五:远程库

  • $git remote add origin git@server-name:path/repo-name.git 关联一个远程库
  • $git push -u origin master 关联后,第一次推送master分支的所有内容
  • $git push origin master 除了第一次推送,都可使用本句推送到服务器
  • $git clone git@github.com:michaelliao/gitskills.git 克隆远程库(远程库中新建了一个gitskills.git的仓库)
  • $git remote 查看远程库
  • $git remote -v 查看远程库的详细信息
  • $ git pull 抓取远程库的信息

 

六:分支

  • $ git branch 查看本地分支,当前分支前面会标一个*
  • $ git branch -a 查看所有分支,包括远程库的分支
  • $ git checkout -b feature/weixinshare 切换到微信分支

 

  • $ git checkout -b feature/weixinshare origin/feature/weixinshare  创建本地分支,并与远程分支建立链接
  • $ git branch name 创建分支
  • $ git checkout name 切换分支
  • $ git checkout -b develop 创建 + 切换分支
  • $ git checkout master 切换到主分支
  • $ git checkout develop 切换到develop分支
  • $ git merge develop 合并develop分支到当前分支
  • $ git merge --no-ff -m"merge with no-ff" dev  合并分支

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

 

  • $ git branch -d develop 删除分支develop
  • $ git branch -D develop 强行删除分支develo(如果要丢弃一个没有被合并过的分支)
  • $ git log --graph --pretty=oneline --abbrev-commit 查看分支的合并情况
  • $ git log --graph 查看分支历史

 

七:Bug分支

  • dev分支上工作,并在此分支上做了修改,此时,测试发现bug,需要新建一个bug分支。
  • 现将目前做的修改git stash“贮藏”起来,然后去修复bug,修复后,再git stash pop,回到工作现场。
  •  
  • 将目前工作git add,然后:
  • $ git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作
  • Git把stash内容存在某个地方了,但是需要恢复一下,有两个办法:
  • 一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除;
  • 另一种方式是用git stash pop,恢复的同时把stash内容也删了。

 

  • $ git stash list 查看贮藏列表
  •  
  • 当列表中有多个贮藏时,可使用$ git stash apply --stash@{0}

 

 

八:标签

  • $ git tag v1.0 为所在的分支打标签,标签为v1.0
  • $ git tag 查看标签(标签显示不是按时间顺序,而是按字母排序)
  • $ git show v0.9 可查看标签的详细内容

如周一应该打标签,但是周五才想起来,可以查看提交历史,然后给需要打标签的提交打上标签

  • $ git log --pretty=oneline --abbrev-commit 查看提交历史
  •  

如果应该打在 23ad905上,可使用git tag v1 id

 

创建带有说明的标签,用-a指定标签名,-m指定说明文字

  • $ git tag -a v0.1 -m "version 0.1 released" 23ad905 
  • $ git push origin v1.0 推送标签到远程库
  • $ git push origin --tags 推送所有标签到远程
  • $ git tag -d v0.1 删除标签
  • $ git push origin :refs/tags/v0.1 删除远程标签(先要删除本地标签)
posted @ 2015-06-16 19:28  Pepper.B  阅读(302)  评论(0编辑  收藏  举报