获取git仓库
一:为已有项目创建新仓库
cd /docker/www/your_project
git init
git add -A # 提交所有文件到暂存区
git commit -m ‘init project version’ # 提交,会创建一个commit版本
git remote add 仓库名 仓库源url # 添加远端仓库源
git push --set-upstream 仓库名 master # 本地master分支关联远端仓库,推送更新到远端仓库
二、克隆现有仓库
cd /docker/www
git clone git@gitee.com:binyplus/shopby.git # 仓库地址,支持https、ssh
查看status、log、diff
git status #显示工作目录和暂存区的状态
git log --all # 查看所有分支的历史
git log --all --graph # 查看图形化的 log 地址
git log --oneline # 查看单行的简洁历史
git log --oneline -n4 # 查看最近的四条简洁历史。
git log --oneline --all -n4 --graph # 查看所有分支最近 4 条单行的图形化历史。
git help --web log # 跳转到git log 的帮助文档网页
git diff # 显示暂存区和工作区的区别
git diff --cached # 暂存区和HEAD区的区别
git diff commitid commitid # 显示两个commit的区别
git diff HEAD # HEAD^ # ^ 表示父级 ^^ 表示祖父级 HEAD~1(父级) HEAD~2(祖父级)
添加add、提交commit、删除rm
git add filename # 添加指定文件到暂存区
git add -A # 添加所有(新增、修改、删除)文件到暂存区
git commit -m"描述增加改变了某某" # 提交版本
git rm filename # 删除文件
git rm -r --cached …idea\ # 忽略已提交的文件
推送push 拉取pull
git push # 如果未绑定远程仓库,需要先绑定remote远程仓库源
git push # 等同 git push origin master
git push 仓库源名 # 推送到指定仓库源
git pull # 拉取origin远程仓库
远程仓库源 remote
git remote # 查看远程库的信息,显示更详细的信息:
git remote -v # 查看远程库的详细信息
git remote rename 仓库名 新仓库名 # 重命名
git remote remove 仓库源名称 # 删掉远程仓库源记录
git remote add origin [new_url] # 添加新的远程仓库源
临时存储 stash
开发中临时增加了紧急任务,怎么处理?将当前修改保存起来
git status # 查看当前已经做了哪些开发
git stash # 把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录
git stash apply # 恢复保存的工作
dgit stash pop # 恢复保存的工作,并删除保存记录
git stash list # 查看保存记录
git stash drop # 删除保存记录
git push # 推送到远程仓库
切换、撤销修改 checkout
git checkout – filename # 将工作区指定文件恢复成和暂存区一致,没有缓存,则从当前版本拉取
git checkout master # 切换到本地master分支
git checkout 分支名 # 切换到指定分支.
git checkout -b 分支名 新分支名 # 切换到指定分支,并建立一个新分支
git checkout commit_id(如果切换到没有分支指向commit,它就处于分离头指针状态,这个时候如果再切换分支,会提醒是否为当前commit建立分支git branch 指针名 commitid,建立则可保存当前分支变动,否则在该分支下做切换将丢弃当前分支变动,修改变动不会保留)
版本回退 reset
git reset filename # 暂存区指定文件回退到HEAD版本
git reset # 暂存区回退到HEAD版本
git reset --hadr # 暂存区工作区都回退到HEAD版本 --hard操作要谨慎
git reset --hard commid # 回退到某一commit,当前节点到该commit之间的节点会全部丢弃
git reset --hard HEAD # 回退到HEAD版本
git reset --hard HEAD^ # 回退到HEAD父级版本 ^^表示父级的父级
git reset --hard HEAD~1 # 回退到HEAD父级版本 ~2表示父级的父级
分支branch
git branch -v # 查看当前分支和本地分支
git branch -av # 查看本地和远程仓库的分支
git branch -rv # 查看远端分支
git branch 新分支 # 基于当前分支创建新分支
git branch -b 新分支 # 创建并切换到该分支
git branch 新分支 指定分支/指定commit # 基于指定分支或指定commit创建新分支
git branch -d commid # 删除分支
git branch -D commitid # 强制删除
git push 远程仓库名 --delete 分支名 # 删除远程分支
变基rebase
git rebase B分支 # 当前分支基于 B 分支做 rebase,也就是将B分支合入到当前分支
git rebase B分支 A分支 # 将 A 分支基于 B 分支做 rebase,也就是将 B 分支合入到 A 分支
git rebase -i # 将本地的多次提交合并为一个,以简化提交历史。
git rebase -i 开始commit [结束commit] # 将指定多个commit合并为一个
变基rebase 该命令还可以重新组合commit顺序,增减,合并。
该命令比较复杂重要,需要更改树也就是历史commit顺序结构再合并成新的树
谨慎,需要操作再根据命令提示,帮助手册
合并merge
git merge A分支 # 将 A 分支合入到当前分支中,并为 merge 创建一个新 commit
git merge A分支 B分支 # 将 A 分支合入到 B 分支中,并为 merge 创建一个新 commit
标签tag
git tag
git tag 标签名 -m ‘标签备注’ # 新建标签,-m可选
git tag 标签名 commitid # 为指定commit加标签
git push origin --tags # 推送标签
git -d 标签名 # 删除标签