1、Git基本命令
-
初始化 / 查看状态 / 查看日志
git init
初始化版本库git status
查看当前仓库状态git log
查看历史提交日志# git log后常用参数 --oneline # 一行显示 --decorate # 显示出指向提交的指针的名字 --graph # 图文并茂 --author # 指定作者 --grep # 匹配提交信息 --merge # 查看合并提交并产生冲突的记录 --merges # 查看合并提交 --no-merges # 查看非合并提交 --stat # 显示修改信息 常结合 -p 一起使用 --pretty # 自定义显示内容 # 推荐一个自定义显示最强的版本, 可配置成命令别名使用 git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
git log 的参数实在是太多了, 有兴趣的同学可以可以看下官方文档: git-scm.com/docs/git-lo…
git reflog
查看历史记录包含回滚的历史 -
增 / 提 / 退 / 删 / 撤销
git add 'file'
添加文件到暂存区git commit -m/--amend "提交信息"
提交到仓库, --amend 修改最后一次的提交说明git reset --hard commid_id/HEAD^
回滚到某个版本,HEAD^ 表示上个版本, HEAD~100 表示前面第100个版本git rm -f/--cached filename
-f 强制删除暂存区和工作区的文件, --cached 只删除暂存区保留工作区git checkout --filename
将已修改还未添加到暂存区的文件恢复到版本库一致如果已经添加到暂存区还未提交版本库 先
git reset HEAD filename
再执行git checkout --filename
如果已经提交版本库, 才有版本回退方法
-
版本对比
git diff filename
查看文件修改内容git diff commit_id1 commit_id2
对比两个提交版本的差异git diff --cached
对比暂存区和当前仓库快照的差异git diff commit_id
对比当前目录和commit_id版本的差异 -
分支
git branch
查看分支git show <branch-name/tag-name>
查看分支信息git branch branch_name
创建一个分支git checkout branch_name
切换分支git checkout -b branch_name
创建一个分支并切换到此分支git merge branch_name
合并分支到当前分支合并分支时候, --no-ff 参数采用普通模式合并, 合并后的历史有分支, 能看出来曾今做过分支, 而fast forward合并看不出来增曾经做过合并
git branch -d branch_name
删除一个分支git branch -D branch_name
强制删除一个没有被合并的分支 -
标签管理
git tag
查看所有的taggit tag tag_name
创建一个tag(在当HEAD上)git tag tag_name commit_id
为历史版本创建taggit tag -a tag_name -m "描述" commid_id
创建一个带描述的taggit tag -d tag_name
删除一个taggit push origin tag_name
推送tag到远程仓库git push origin --tags
推送所有未推送过的taggit push origin :refs/tag_name
从远程仓库删除tag, 先在本地删除再执行push -
暂存
git stash
暂存工作现场git stash pop
回到工作现场git stash list
查看所有暂存记录git stash clear
清空所有暂存记录
2、远程仓库
-
仓库相关
git remote -v
查看本地关联了哪些远程仓库git clone 仓库地址
克隆远程仓库到本地git remote add origin 远程仓库地址
创建一个本地仓库名关联远程仓库地址(origin为本地仓库名)git push (-u) origin 分支名
推送本地仓库到远程 第一次推送时要加 -u 参数git pull origin 分支名
拉取远程仓库到本地git remote rm 仓库名
移除关联 -
分支相关
git fetch origin master
远程库上的master分支代码拉取到本地,暂不合并(需要调用merge命令进行合并)git checkout -b origin/
在本地创建和远程分支对应的分支git branch --set-upstream origin/
建立本地分支和远程分支的关联