Git丨命令汇总及其常见问题解决
更新其它常用命令;
文件删除
删除远程仓库但不删本地资源,先在 .gitignore 中添加需要忽略的文件:
1 | git rm -r --cached *** //-r 是递归删除文件夹 |
切换分支
查看分支:
1 | $ git branch -a #远程分支 |
切换到远程分支:
1 | $ git checkout -b standard-base-4.x-dev origin/standard-base-4.x-dev |
删除远程分支:
1 | $ git push origin --delete <BranchName> |
撤销 Commit / reset
1 | # 回退到上一版本并不撤销add操作; |
Git Large File Storage (LFS)
MacOS 安装:
1 | brew install git-lfs |
初始化:
1 | git lfs install |
commit 和 push 操作与git相同。
查看正在追踪的文件模式(.gitattributes):
1 | git lfs track |
添加需要管理的文件类型:
1 | git lfs track *.csv #.gitattributes文件中生成新行 |
查看追踪的文件列表:
1 | git lfs ls-files |
下载远程大文件:
1 | git lfs pull |
版本控制流程图
工作区(Working Directory)
版本库(Repository):隐藏目录 /.git
版本库中包含index(stage)
的暂存区和自动创建的第一个分支 master
,以及指向master
的指针head
当前用户配置
1 | # 配置 |
创建版本库
1 | # 创建 |
版本回退
1 | 文件 1.修改 2. 添加 3. 提交 |
撤销修改
把file
文件在工作区的修改全部撤销。
1 | $ git checkout -- file |
两种情况:
一种是file
自修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态;
一种是file
已经添加到暂存区后,又作了修改,撤销修改就回到添加到暂存区后的状态。
三种场景:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库。
删除文件
删除工作区文件file
后:
两种选择:
- 从版本库中删除该文件:
1
2$ git rm file
$ git commit -m "message" - 误删,恢复文件到最新版:
1
git checkout -- file
添加远程仓库
1 | $ git remote add origin https://github.com/dreamhomes/test.git |
远程库克隆
1 | # ssh |
创建和合并分支
1 | # 查看分支 |
解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。
用git log --graph
命令可以看到分支合并图。
多人协作
- 查看远程库信息:
git remote -v
- 从本地推送分支:
git push origin branch-name
- 如果推送失败,用
git pull
抓取远程的新提交; - 在本地创建和远程分支对应的分支:
git checkout -b branch-name origin/branch-name
名称一致; - 建立本地分支和远程分支的关联:
git branch --set-upstream branch-name origin/branch-name
- 从远程抓取分支, 使用
git pull
,如果有冲突,要先处理冲突。 git rebase
操作可以把本地未push的分叉提交历史整理成直线;
联系作者
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 梦家博客!
评论
TwikooValine