配置全局 用户名、邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
创建仓库
git init
提交
git add <file name> // 把文件添加到暂存区
git commit -m <"description"> // 把暂存区的所有内容添加到当前分支
git diff <file name> // 查看指定文件被修改的具体内容
查看
git log //查看版本记录
git log --graph // 可以查看分支合并图
git log --pretty=oneline // 简化log输出
git reflog //查看每一次命令
git status //查看当前状态,修改、删除、添加、冲突
回退版本
git reset --hard HEAD^ // 回退上一个版本
git reset --hard HEAD^ // 回退上上个版本
git reset --hard HEAD~100 // 回退前100个版本
git reset --hard <commit id> // 回退/前进到指定版本
撤销修改
git checkout -- <file name> // 撤销指定文件的所有修改
git reset HEAD <file name> // 撤销已提交到暂存区的文件
删除文件
git rm <file name>
// 撤销删除:由于删除也被认为为修改,所以也可以使用撤销修改的命令来撤销删除
git checkout -- <file name>
git reset HEAD <file name>
远程仓库
以gitHub为例,账号名为Zhangguiguang
,仓库名为gitTest
把本地git仓库关联到远程仓库
git remote add origin git@github.com:Zhangguiguang/gitTest.git
把本地仓库所有内容推送到远程库
git push -u origin master // 首次推送内容
git push origin master // 之后推送内容可以忽略 -u
git push origin local_branch:remote_branch // local_branch为本地存在的分支,remote_branch为远程分支,如果remote_branch不存在则会自动创建分支。
从远程库克隆
git clone git@github.com:Zhangguiguang/gitTest.git
分支
git branch //查看分支
git branch <name> // 创建分支
git branch -d <name> // 删除分支
git branch -D <name> // 删除分支:强行删除,该分支有修改,但是没有被合并到master,需要使用强行删除命令
git checkout <name> // 切换分支
git checkout -b <name> // 创建+切换分支
git merge <name> // 合并某分支到当前分支
git merge --no-ff -m <"merge with no-ff"> <branch2> 把 branch2分支合并到当前分支,且当成一次commit
存储工作现场
git stash // 保存当前的工作进度,此时工作区是干净的,没有修改、没有commit
git stash list // 查看已保存的工作现场列表
git stash apply // 恢复最后一个工作现场
git stash apply <index or stashName> // 恢复指定工作现场,可以指定下标、场景名
git stash drop // 从stash list删除最后一个工作现场
git stash drop <index or stashName> // 从stash list删除指定工作现场,可以指定下标、场景名
git stash pop // 恢复最后一个工作现场并从stash list删除
多人协作
git remote // 查看远程库信息
git remote -v // 查看详细信息
git push origin <name> // 推送指定分支到远程库
// 如果推送失败,先用git pull抓取远程的新提交,解决冲突再提交
git pull // 将远程库的最新提交拉取下来
git branch --set-upstream <dev> origin/<dev> // 将本地分支与远程分支链接起来
标签
git tag <name> // 对当前分支的HEAD打一个tag
git tag <name> <commit id> // 在指定commit位置打一个tag
git tag // 查看所有tag
git show <tagname> // 查看指定tag的信息
git tag -a <tagname> -m <tagdescription> <commit id> // 可用-a指定tag名, -m指定tag描述
操作标签
git tag -d <tagname> // 删除tag
git push origin <tagname> // 把tag推送到远程库
git push origin --tags // 一次性推送所有tag
// 如果tag被推送到远程,需要删除需要两步
git tag -d <tagname> // 删除本地tag
git push origin :refs/tags/<tagname> // 删除远程tag
网友评论