常用命令
- git init 初始化仓库
- git add <file.name> 暂存单个文件
- git commit -m "desc" 提交文件,并且附带描述
- git log 查看提交记录
- git log --prettty=oneline 查看精简版日志
- git log --graph --pretty=oneline --abbrev-commit 查看分支结构
- git reset --hard HEAD^ 回退到上一个版本,并且删除之前提交的
- git reset --hard < commit id > 回退到指定版本
- git reset HEAD < file > 可以撤销 暂存区到工作区
- git reflog 查看每一次使用的命令。 可用于当回退到某个版本后,又想在回到没回退之前的版本,可以使用他查看 commit id
-
- 回退版本后,如果需要远程也回退,需要强制push git push -f origin branch_name
- git diff HEAD -- readme.txt 可以查看工作区 和 版本库里面代码的区别
- git checkout -- readme.txt 撤销工作区所有的修改
-
- git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
- git brach -M master 重命名当前分支
- git remote add origin 添加远程仓库
- git push origin mater 推送代码到远程仓库
- git checkout -b dev
-
- -b 表示创建并且切换,相当于执行了 git branch dev;git checkout dev
- git switch -c dev
-
- 和git checkout -b dev 效果一样,并且更容易理解
- git branch 查看所有分支
- git checkout master 切换分支
- git merge dev 合并分支(如果这时候在mater上,那就是吧dev分支合并到 master上)
- git branch -d master 删除分支
- git branch -D < branch > 强行删除 没有合并过的分支
- git merge --no-ff -m "merge width no-ff" dev
-
- --no-ff 表示不使用 Fast forward 模式,会产生合并记录,并且合理看出做过合并
- git stash 保存工作现场
- git stash list 查看保存的工作
- git stash pop 恢复工作现场,并且删除stash区域的内容
- git cherry-pick < commit id > 可以合并某一次提交的代码, 适用于只想合并某一次提交的代码,不是全部合并的场景
- git stash apply 是恢复现场,但是不会删除stage区域的内容
- git stash drop 是删除stage
-
- 可以多次stage ,恢复使用 git stash apply stash@{0}
- git checkout -b dev origin/dev 创建远程 origin 的 dev 分支到本地
- git remote -v 查看远程仓库信息
tag
- git tag v1.0 给最新的一次提交打标签
- git tag 查看所有标签
- git tag v2.0 < commit id> 给某一次提交打标签
- git show < tagname> 查看标签信息
- git tag -a v1.0 -m "version 1.0 released" 1094asd
-
- 创建带有说明的标签,用-a 指定标签名,-m 指定说明文字
- git tag -d v1.0 删除tag
-
- 因为创建标签都自存在于本地,不会自动推送到远程。所有可以在本地安全删除
- 如果要推送到远程: git push origin < tagname>
- 一次性推送全部未推送的tag :git push origin --tags
- 如果标签已经推送到远程,要删除,可以先从本地删除:
-
-
- git tag -d v1.0
-
-
- 然后从远程删除
-
-
- git push origin :refs/tags/v1.0
多人协作git管理流程:
-
-
1、首先可以尝试 git push origin < branch-name> 推送自己的修改
-
2、如果推送失败,则因为远程分支比自己的本地更新, 需要先用git pull 试图合并
-
3、如果合并冲突,解决冲突,并且在本地提交
-
4、没有冲突或者解决掉冲突后,再用 git push origin < branch-name> 推送就能成功
-
如果git pull 提示 no tracking information ,则说明本地分支和远程分支的链接关系没有创建,用命令 git branch --set-upstream-to < branch-name> origin/< branch-name>