更新于 2019/03/28 22:29:49
git 文件状态
这里说的是已被追踪的文件
分为未修改、已修改、已放入暂存区。
一般都会有两个远程分支,origin 代表自己的远程仓库,upstream 代表上游官方代码仓库
git add
命令作用:
- 开始跟踪新文件;
- 把已跟踪且修改过的文件放到暂存区;
- 将有冲突的文件标记为已解决;
HEAD 指针
HEAD 指针很重要,就把他放在第一项简单介绍了,官方文档中给出的解释如下:
HEAD 指向你正在工作的本地分支的指针,运行
git branch
命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中去。
远程仓库相关
# 关联远程仓库
git remote add [name] [xxurl]
# 出现的问题:fatal: refusing to merge unrelated histories
git pull origin master
git pull origin master --allow-unrelated-histories
git commit -m "xx"
# 再执行 git pull origin master
# 添加远程仓库
git remote add [远程仓库别名] [url]
# 远程仓库删除/重命名
git remote rm [远程仓库别名]
git remote rename [old] [new]
git fetch
git fetch [remote-name]
从指定的远程仓库拉取本地仓库还没有的数据,执行之后本地仓库会拥有这个远程仓库中所有分支的引用,但不会自动合并或修改当前的工作空间。不推荐用 pull 命令,除非这个仓库只有你自己维护且不会产生冲突。实际工作中为防止冲突都用 fetch、rebase。
Github 同步 Fork 源项目更新
# 关联官方远程仓库
git remote add upstream http://ssx
# 拉取官方仓库更新的数据
git fetch upstream
# 切换到本地 master 分支
git checkout master
# 把官方仓库的 master 分支合并到本地 master,完成同步且不会丢掉本地修改的内容
git merge upstream/master
# 更新到 GitHub 自己 Fock 的分支上
git push origin master
当官方仓库有新分支时:
git stash 暂存
git stash #将当前所有修改项(未提交)暂存,工作空间返回致上一次提交
git stash apply #回复之前暂存的修改
git 版本回退
# --hard 会抛弃当前工作区的修改
# --soft 会回到之前的版本,但保留当前工作区的修改,用于重新提交
git reset <模式> xx版本号(head表示当前版本)
# 这时再使用 git push 会提示当前版本小于远程版本
git push
# ! [rejected] LogbackFilter_AS-176 -> LogbackFilter_AS-176 (non-fast-forward)
# error: 推送一些引用到 'https://code.xxx.com.cn/curriculum/owl.git' 失败
# 提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
# 提示:再次推送前,先与远程变更合并(如 'git pull ...')。详见
# 提示:'git push --help' 中的 'Note about fast-forwards' 小节。
#强制提交
git push origin <分支> --force
.gitignore 文件
不会对已被追踪的文件起作用
- a.txt 文件:忽略此仓库下的全部 a.txt 文件
- build/:忽略所有 build 目录中的文件
git 分支创建
# 新建一个分支并切换到那个分支上
git checkout -b xxx
# 等同于 git branch xxx; git checkout xxx
git commit 指定文件
git commit [file1] [file2] -m "xxx"
git rebase 和 git merge
git rebase 看起来会让当前分支没有经过任何合并一样
git merge xx
是将 xx 分支合并到当前分支,看起来好像是提一个新的「合并的提交」; git rebase xx
是取消当前分支的提交内容,并把它们保存为一个“补丁”,把当前分支更新为最新的 xx 分支,最后把这些补丁应用到当前分支。
参考文章:
git rebase 使用笔记www.jianshu.com
版权声明:本文为weixin_36147145原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。