git 命令
Git 基础介绍
官方文档链接: https://git-scm.com/book/zh/v2
我们通过git来进行版本控制( 本地版本控制、集中化的版本控制、分布式版本控制)
git文件状态
在git中文件有如下状态
1.已提交(committed):数据已经安全的保存在本地数据库中。
2.已修改(modified):修改了文件,但还没保存到数据库中。
3.已暂存(staged):对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
4.未跟踪(untracked):一个为跟踪文件不会被commit
下图展示了四种状态的转化
git仓库
git工作区域分本地和远程仓库。
在本地操作时又有区分:
–Working Directory(工作目录):即正在编辑的文件状态。文件状态为未跟踪(untrack)和已修改(modified)在此区域内。
–Staging Area(暂存区):保存了下次将提交的文件列表信息。文件状态为已暂存(staged)在此区域内。
–Repository(本地仓库):提交到本地仓库的文件。
Git命令
常用命令
- git add {file name} 开始跟踪新文件、把已跟踪的文件放到暂存区、合并时把有冲突的文件标记为已解决状态
- git commit [-m “commit message”] 把暂存区的全部文件作为一次提交
- git push [–force] 提交到远程仓库 (–force 时会强制覆盖远程仓库)
- git pull 获取同步远程分支(此操作=git fetch + git merge)
- git status [-s] 查看文件状态
- git ignore {file name} 提交时忽略此文件
- git cheakout {branch name} 切换分支
- git cheakout -b {new branch name} [existing branch] 根据{指定|当前}创建新分支
- git reset [–soft|–hard|–mixed] {commit id|HEAD~%n} 切换节点
分支、远程仓库操作命令
- git delete -b [branch name] 删除本地分支
- git push origin --delete {branch name} 删除远程分支
- git push origin --delete tag {tag name} 删除远程标签
- git branch [branch name>]创建本地分支 在当前所在版本对象创建一个指针
- git reset --hard HEAD~1
- git branch [-a] 查看分支
- git merge [branch name] {-m “merge message”} {–no-commit} 将指定分支合并到当前分支
其他命令
- git reflog 显示HEAD日志
- git log {–pretty=format:’%h %s’ --graph} 查询提交日志
- git config {–global|–local ${key} ${value} } 变量设置
- git push --set-upstream origin [branch name] 设置远程仓库地址
常见问题解决
冲突解决
git pull冲突 (冲突文件未提交)
- git stash 先将本地修改存储起来
- git pull 暂存了本地修改之后,就可以pull了
- git stash pop 还原暂存的内容
- 解决冲突文件后提交
git pull冲突 (冲突文件已提交)
- git fetch
- git merge 对应的远程分支
- 修改冲突后 commit&push