• 创建git仓库

当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的

  1. git init
  • 工作区状态
  1. git status //查看状态
  2. git diff //比较差异
  • 版本回退

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭

  1. git log //查看提交的记录
  2. git reflog //查看命令操作的记录
  3. git reset --hard HEAD//回退到Head的工作区
  • 工作区、暂存区

工作区就是当前操作的目录。当你使用git add的时候就是把文件加到暂存区。commit之后就是把暂存区的文件提交到分支中

版本库记录着差异。

image

  • 撤销修改

命令git checkout — readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

用命令

  1. git reset HEAD file

可以把暂存区的修改撤销掉(unstage),重新放回工作区。使用 HEAD表示最新的状态

  • 删除文件

使用git rm file 可以删除版本库中的文件

  1. git rm read.txt
  2. git checkout -- read.txt //从版本库中恢复
  • 远程仓库

添加远程仓库

origin 是仓库名字。是git的默认的

  1. git remote add origin 仓库地址
  2. git remote -v 查看远程仓库
  3. git push -u origin master //将本地master和orgin分支关联。
  4. git clone 仓库地址 //clone 一个远程仓库到本地
  5. git checkout -b branch-name origin/branch-name//本地和远程分支的名称最好一致
  6. git branch --set-upstream branch-name origin/branch-name //建立本地分支和远程分支的关联,
  7. git pull orgin master //从远程分支抓取

git分支

master 是git 默认的分支,也叫主分支。每一次提交在分支上形成了一个时间线。HEAD指向该分支

image

  • 创建分支
  1. git branch dev //创建分支
  2. git checkout dev //切换分支
  3. git branch //命令会列出所有分支
  4. git checkout -b dev //创建并切换到dev分支

HEAD指针指向了dev
image

  • 合并分支

合并某分支到当前分支:git merge <name>

  1. git checkout master
  2. git merge dev
  • 删除分支
  1. git branch -d dev
  2. git branch -D <name> //强行删除

工作区暂存

将工作区暂时保存起来 不提交到暂存区。

  1. git stash //保存工作区
  2. git stash list //查看保存的工作区
  3. git stash pop
  4. git stash apply //恢复保存的工作区
  5. git stach drop //删除保存的工作区

tag标签

  1. git tag v1.0 //打标签
  2. git tag // 列出所有的标签
  3. git tag commit_id //给特定的commit_id打标签
  4. git tag -a v1.0 -m "tag1" //打带说明的标签
  • 操作标签

    • 删除标签
  1. git tag -d v1.0
  • 推送标签到远程分支
  1. git push orgin v1.0
  2. git push origin --tags// 推送所有的标签到远程分支
  3. git push origin :refs/tags/v0.9 //删除远程分支的标签

配置git

初次使用 需要配置自己的信息,

  1. git config --global user.name "John Doe"
  2. git config --global user.email johndoe@example.com
  • 配置忽略文件

.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

忽略文件的原则是:

  1. 忽略操作系统自动生成的文件,比如缩略图等;
  2. 、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件

  3. 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件。

  • 设置别名

别名就是把一些复杂的命令简化 类似svn co等之类的

  1. git config --global alias.co checkout
  2. git config --global alias.ci commit
  3. git config --global alias.br branch
  4. git config --global alias.unstage 'reset HEAD'
  5. git config --global alias.last 'log -1'
  6. git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
  • 当前项目配置

每个仓库的Git配置文件都放在.git/config文件中:

  1. [core]
  2. repositoryformatversion = 0
  3. filemode = true
  4. bare = false
  5. logallrefupdates = true
  6. ignorecase = true
  7. precomposeunicode = true
  8. [remote "origin"]
  9. url = git@github.com:xianyunyh/PHP-Interview
  10. fetch = +refs/heads/*:refs/remotes/origin/*
  11. [branch "master"]
  12. remote = origin
  13. merge = refs/heads/master
  14. [alias]
  15. last = log -1

当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

  1. [alias]
  2. co = checkout
  3. ci = commit
  4. br = branch
  5. st = status
  6. [user]
  7. name = Your Name
  8. email = your@email.com

您的支持是对我最大的鼓励!

分类: 项目问题

标签: