一、基础操作
#创建
git init #新建文件夹初始化git
git remote add origin http://xxx.git #初始化后关联到远程仓库地址
git clone http://xxx.git #从远程仓库clone到本地
#提交推送
git add file1.txt file2.txt #添加指定文件到暂存区,可以单个或者多个文件
git add . #添加所有文件到暂存区
git commit -m "注释" #提交
git push -u origin master #推送本地分支到远程仓库的master分支,可以加 -f 参数,强制推送
#拉取代码
git pull origin master #拉取最新远程的master分支
二、账户操作
git config --global user.name "用户名" #设置用户名
git config --global user.email "邮箱地址" #设置邮箱地址
三、常用选项说明
强制操作:-f 或者 --force
删除: -d 或者 --delete
强制删除: -D 或者 --delete -- force
重命名:-m 或者 --move
强制重命名: -M 或者 --move --force
远程:-r 或者 --remote
代表所有:-a 或者 --all
四、创建和初始化
git init #初始化git
git clone http://xxx.git #从远程仓库clone到本地
五、本地分支
git branch #查看本地所有分支
git checkout dev #本地切换到dev分支
git checkout -b dev origin/dev #检出远程dev分支到本地
git checkout -b dev #本地创建新的dev分支,并切换到dev分支
git branch dev #本地只创建一个新的dev分支
git branch -d dev #删除本地的dev分支
git branch -D dev #强制删除本地的dev分支
git branch -m dev dev1 #重命名本地dev分支为dev1分支
git push origin dev:dev #推送本地新建的dev分支到远程仓库
git branch --track dev origin/dev #新建本地dev分支,并关联到远程的dev分支
git branch --set-upstream dev origin/dev #将本地已经存在的dev分支关联到远程的dev分支
六、远程分支
git branch -r #查看远程所有分支
git branch -a #查看本地和远程所有分支
git push -u origin dev #推送本地分支到远程仓库的dev分支,可以加 -f 参数,强制推送
git push origin dev:dev #推送本地的dev分支到远程指定的dev分支
git pull origin dev #从远程仓库的dev分支拉取最新的代码,拉取后是会合并到当前分支,相当于执行:git fetch origin 和 dev git merge FETCH_HEAD 两条命令
git fetch origin master #从远程拉取master分支最新内容到本地
git fetch origin master:feature_log #从远程master分支拉取代码到本地,并新建为feature_log分支
git push origin -d dev #删除远程的dev分支
git branch -D -r dev #强制删除远程的dev分支
七、合并
git merge dev #将本地dev分支合并到当前分支
git rebase dev #将本地dev分支合并到当前分支
八、提交
git add file1.txt file2.txt #添加指定文件到暂存区,可以单个或者多个文件
git add . #添加所有文件到暂存区
git commit -m "注释" #提交所有暂存区内容到远程仓库
git commit file1.txt file2.txt -m "注释" #提交暂存区指定文件到远程仓库
git commit --amend -m "新的注释" #修改提交的注释内容
九、修改和删除
git rm file1.txt #删除本地指定的文件
git rm -r --cached --force node_modules/ #删除远程指定的文件夹
git mv file1.txt file2.txt #修改文件名file1.txt为file2.txt
git rm --cached file1.txt #停止追踪文件,但不会真正删除
十、撤销
git reset --hard [commit-hashcode] #根据提交的hash值回退到某个提交的版本,可以git log来查看提交所有记录的hash值
git checkout -- file1.txt #第一种作用:本地误删文件,可以用远程来替换到本地
git checkout -- file1.txt #第二种作用:未用git add缓存代码时候,该命令可以撤销本地的修改
git reset HEAD file1.txt #移除暂存区中指定的文件
git reset HEAD . #移除暂存区中所有文件
git reset . #移除暂存区中所有文件
git revert HEAD #放弃最后一次提交
十一、远程操作
git remote -v #查看远程仓库连接地址
git remote show origin #查看远程和本地仓库的信息
git remote add origin http://xxx.git #关联到远程仓库地址
十二、标签
git tag #查看所有标签
git tag [tagname] #创建标签
git tag -a [tagname] -m "v0.2" #修改标签信息
git tag -d [tagname] #删除标签
十三、查看
git status #查看仓库状态
git log #查看所有提交信息,包含hash值等,可以作为回退版本用
git log -p file.txt #查看指定文件的提交历史
git log --grapy #以图表分类形式查看提交日志,等同于git blam
git blam #以图表分类方式查看提交日志
git commit -v #提交时显示所有的diff信息
git diff #显示暂存区和本地区的差异
git diff HEAD #显示本地和当前分支最新提交的代码之间的差异
git diff --cached #显示缓存区文件和上次提交之前的差异
git diff [commit-hash-1] [commit-hash-2] #通过commit的hash值比较这两个版本间的差异