初始化项目
git init 本地初始化
克隆代码
git clone +git地址
创建分支
git branch <branch_name> #创建指定名称的分支
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
查看分支
git branch 查看本地所有分支,"*" 号代表当前工作分支
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git branch -v 查看分支详情,包括分支指向的commitId及提交信息\
查看状态
git status 查看当前状态
切换分支
git checkout <branch_name> #切换到指定分支
git checkout -b <branch_name> #创建并切换到指定分支
提交
git commit -am "注释" 提交并且加注释
git push origin dev:dev 这样远程仓库也有一个dev分支了
git push origin master 将文件给推到服务器上
git diff 查看尚未暂存的更新
git pull 本地与服务器端同步
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去
git remote show origin 显示远程库origin里的资源
分支合并
git merge <branch_name>
#将指定分支合并到当前分支,如果两个分支没有产生分叉情况,那么会进行快速合并,即fast-forward方式,它并不会产生新的commitId,只是改变了指针的指向,产生分叉合并可能会有冲突情况。
删除分支
git branch -d <branch_name>
#删除一个干净的分支
git branch -D <branch_name>
#强制删除一个分支,该分支有没有合并到当前分支的提交记录
注意: 删除分支前都需要先切换到其他分支才能进行删除操作
分支恢复
思路: 对于已经有提交记录的分支删除后,实际上只是删除指针,commit记录还保留,如果想恢复,需要使用git reflog查找该分支指向的commitId,然后根据commitId创建新的分支
git branch <branch_name> <hash_val> #根据指定commit创建新分支
重命名分支
git branch -m <branch_name> newname
例子:git branch -m test dev 结果test被重命名为dev
查看历史变更
git reflog 查看你的历史变更记录
git reset --hard HEAD@{n}(n是你要回退到的引用位置)回退。
例子:git reset --hard 40a9a83
修改内容不提交时短暂存储
git stash save “注释”保存当前分支所做但提交的操作,回到上个版本的状态
git stash list用来展示所有保存(stash)的列表
git stash pop恢复之前保存的修改操作并删除该保存记录
git stash show用来展示某一保存记录所修改的操作
git stash apply恢复保存的修改操作但是不删除该保存记录
默认是恢复最近一次的(git stash apply@{0}),如果想指定恢复,可以在apply 加上 stash@{number},number表示stash list的顺序,例如 git stash apply@{1} 则是返回第二个
git stash drop用来删除某一保存记录所修改的操作
如果不指定删除那一条保存记录,则默认第一条(stash@{0}) ,如果需要指定,可以git stash drop stash@{number}
场景应用: 当前在做任务创建A分支开发某一模块的时候,临时有任务要去另一个分支B开发另外一个功能, 不想提交A分支的代码,可以使用git stash save 保存A分支的代码,使用git stash save后, 开发完成后切换回分支A=>使用git stash pop 恢复之前开发的进度\
git命令:
git status
git stash save "xxx"
git stash list
git status
git checkout test2 新任务
开发紧要任务后
git add .
git commit -m "xxx"
git checkout test1 旧任务
git stash list
git stash pop
git status