Git 小结

Git 将服务器代码更新到本地

  1. git status(查看本地分支文件信息,确保更新时不产生冲突)
  2. git checkout – [file name](若文件有修改,可以还原到最初状态;若文件需要更新到服务器上,应该先merge到服务器,在更新到本地)
  3. git branch(查看当前分支状况)
  4. git checkout [remote branch](若分支为本地分支,则需要切换到服务器的远程分支)
  5. git pull(若命令执行成功,则更新代码成功)

Git push常用方法

  1. git push origin master(如果远程分支被省略,则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建)
  2. git push origin : refs/for/master(如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin –delete master)
  3. git push origin(如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支)
  4. git push(如果当前分支只有一个远程分支,那么主机名都可以省略,形如git push,可以使用git branch -r 查看远程的分支名)

强制更新远程分支

1
git push -f -u origin branch

Git 代码冲突解决方案

如果系统中有一些配置文件在服务器上做了配置修改,然后后续开发中新添加一些配置项的时候,在发布这个配置文件的时候,会发生代码冲突:error: Your local changes to the following files would be overwrtten by merge:protected/config/main.php. Please,commit your changes or stash them before you can merge.

如果希望保留生产服务器上所作的改动,仅仅并入新配置项,可以这样处理:
1
2
3
git stash
git pull
git stash pop
然后可以使用 Git diff -w + 文件名  来确认代码自动合并的情况

如果希望代码库中的文件完全覆盖本地工作版本,方法如下:
1
2
git reset --hard
git pull
其中 git reset是针对版本。

Git Commit 与 Git push的区别

1
2
3
git commit 操作的是本地库, git push操作的是远程库。
git commit 是将本地修改过的文件提交到本地库中。
git push 是将本地库中的最新信息发送给远程库。

git add -A 和 git add . 的区别

1
2
3
git add . : 它会监控工作区的状态树,使用 git add . 会把工作时的所有变化提交到暂存区,包含文件修改内容以及新文件,但不包括被删除的文件。
git add -u: 它仅加农被 add 的文件,会将被修改的文件和被删除的文件提交到暂存区。不会提交新文件。
git add -A : 提交所有变化

git tag 的使用

Git可以对某个版本打上标签(tag),表示本版本为发行版。 在发布软件,以及使用 npm 创建依赖库等情况时,需要对其版本使用标签注释。

查看 tag

1
git tag

显示附注信息

1
git show V1.0

推送远程代码库

1
git push origin --tags

删除 tag

1
git tag -d V1.0

同步到远程代码库

1
git push origin :refs/tags/V1.0

Git 常见问题

  1. 在项目代码提交的前提下,发现项目还是红色标识,有可能是大小写原因,修改git配置文件:
    1
    ignorecase = false

重置密码

mac 端若权限不够需要加 sudo

1
git config --system --unset credential.helper 

合并部分文件

比如 dev 分支想要合并 xiaoyu 分支上的 /src/assets 文件夹
切换到 dev 分支,并执行以下命令

1
git checkout xiaoyu /src/assets
作者

晓策

发布于

2017-09-16

更新于

2023-06-26

许可协议

评论