一、Git可视化界面操作
1.更新线上代码到本地
1) Remote -> fetch-> 分支 从远程仓库哪个分支中获取更新,如果没有则只有主支。提示成功则改动的已经被存放到临时区了,你一会还需要进行合并操作,如果没有任何改动,则列表中是空的
2) merge->local merge 合并 – 本地合并 不管你本地有没有代码,fetch之后呢,是都要merge的,也就是说,fetch下来后,大大的代码还在一个小黑屋里,我们需要把它装到自己兜里。
2.上传本地代码到线上
权限不足
重新扫描 缓存改动 签名 提交 上传 》》一个一个挨着点完
签名 区分不同开发人员的身份
二、Git命令窗口操作
1.$ git branch 命令可以显示所有本地分支
可以看到:first-repo这个仓库只有一个master分支。我们来创建dev分支,然后切换到dev分支上,如下操作:
git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令:
git branch dev
git checkout dev
git branch查看分支,会列出所有的分支,当前分支前面会添加一个星号。
2.更新线上代码到本地
$ git pull
从远程获取最新版本并merge
到本地
其实相当于git fetch
和 git merge
在实际使用中,git fetch
更安全一些,因为在merge
前,我们可以查看更新情况,然后再决定是否合并。
3.上传本地代码到线上
1)$ git status -s 查看当前状态 -s简短的结果输出,如果没加该参数会详细输出内容。
git diff
执行 git diff 来查看执行 git status 的结果的详细信息
尚未缓存的改动:git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff --stat
2)$ git add . 命令可将该文件添加到缓存
git add README hello.php 或
git add . 所有
add后改内容 需要重新add
3)$ git commit -m ‘提交备注’
使用git add命令将想要快照的内容写入缓存区, 而执行 git commit将缓存区内容添加到仓库中。
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以需要配置用户名和邮箱地址。
git config --global user.name 'runoob'
git config --global user.email [email protected]
4)$ git push
这个命令的结果就是将本地分支master中commit的数据abc.txt上传到了远程绑定的master分支上了。
5)git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:
git commit -a
6)git reset HEAD 命令用于取消已缓存的内容。
7)克隆线上已有代码到本地
git clone https://github.com/535977672/tp5.git
git clone https://github.com/jquery/jquery.git e:/myJQuery/
Github的WebHooks实现生产环境代码自动更新
1. 现在的线上仓库比如 Github、Gitlab、Gitee 等都支持hook技术,可以很方便的实现代码的自动化管理
这里以我经常使用的 Github 为例,监听dev分支有push动作时,可以自动通过设置的hook通知生产环境中的脚本执行git pull拉取代码,自动更新
2. 强制更新
git fetch --all && git reset --hard origin/master && git pull
3. 权限问题
sudo chown -R www-data:www-data larv
4. git的时候每次都需要输入密码
git bash进入你的项目目录,输入:
git config [--global] credential.helper store
--global可选
再输入一次密码就可以了
5. .gitignore规则不生效的解决办法
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
6. 版本回退
6.1 git reset --hard 目标版本号”命令将版本回退
目标版本号
6.2 git push -f 强制推上去
6.3 认证失败
Coding 提示: Authentication failed.
认证失败,请确认您输入了正确的账号密码。
git config --system --unset credential.helper 清除信息
7. git分支
查看当前使用分支(结果列表中前面标*号的表示当前使用分支)
git branch
创建并切换分支
git checkout -b fenzhi2
它是下面两条命令的简写:
git branch fenzhi2
git checkout fenzhi2
删除分支 -D强制删除
git branch -d fenzhi2
删除远程分支
git push origin :fenzhi2
分支上传到线上
git push --set-upstream origin fenzhi2
切换回master
git checkout master
合并指定分支到当前分支
git merge fenzhi2