开发项目常用的几个命令:
git status //日常操作
git add .
git commit -m "xxx"
git pull origin master
git push origin master
git log // 版本回退
git reset --hard e26ba6
git branch
git checkout -b dev //创建切换分支
1、本地库
$ mkdir learngit //创建一个空目录
$ cd learngit
$ pwd //pwd命令用于显示当前目录
/Users/michael/learngit
$ git init //把目录变成Git可以管理的仓库
$ git add . //添加文件
$ git commit -m "xxx" //提交文件
$ git diff readme.txt //查看difference
$ git checkout -- readme.txt //丢弃工作区的修改
$ git reset HEAD readme.txt //丢弃暂存区的修改,在执行上一步
$ git log
$ git reset --hard e2aeg6版本号 //丢弃commit,版本回退
2、远程库
$ git remote add origin https://github.com/shiyuanping/elema.git 关联远程库
$ git push -u origin master //第一次推送master分支内容:加上-u,把本地和远程的master关联起来
$ git clone https://github.com/shiyuanping/elema.git //克隆远程库
3、分支管理
$ git checkout -b dev //创建dev分支并切换到dev分支
===
$ git branch dev //创建分支
$ git checkout dev(分支名称) //切换分支
$ git branch //查看当前分支
$ git merge <name> //合并某分支到当前分支
$ git merge dev //把dev分支的工作成果合并到master分支上(当前分支master)
$ git branch -d dev //删除分支
$ git remote //查看远程库的信息
$ git remote -v //查看远程库的详细信息
$ git push origin master //推送分支
4、标签管理
$ git checkout master //切换到需要打标签的分支上
$ git tag v1.0(标签名) //默认标签是打在最新提交的commit上
$ git tag //查看所有标签
$ git tag -d v0.1 //删除本地标签
$ git log //对历史commit打标签
$ git tag v0.9 f52c633 //标签名、版本号
$ git show v0.9 //查看标签信息
$ git tag -a v0.1 -m "version 0.1 released"
//创建带有说明的标签,用-a指定标签名,-m指定说明文字
$ git push origin v1.0 //推送某个标签到远程
$ git push origin --tags //一次性推送全部尚未推送到远程的本地标签
//删除远程标签:先从本地删除,再从远程删除
$ git tag -d v0.9
$ git push origin :refs/tags/v0.9
配置别名
$ git config --global alias.st status //st就表示status。git status = git st
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
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文件中
[alias]
co = checkout
ci = commit
br = branch
st = status
忽略特殊文件
在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。
# compiled output
/dist
/tmp
/out-tsc
# System Files
.DS_Store
Thumbs.db
package.bak.js
解决冲突:
先用git pull把最新的提交从origin/dev抓下来,然后,在本地合并,解决冲突,再推送