Git基础命令一、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 devgit checkout devgit 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显示摘要而非整个 diffgit diff --stat2)$git add.命令可将该文件添加到缓存git add README hello.php或git add. 所有add后改内容 需要重新add3)$git commit-m‘提交备注’使用git add命令将想要快照的内容写入缓存区 而执行 git commit将缓存区内容添加到仓库中。Git 为你的每一个提交都记录你的名字与电子邮箱地址所以需要配置用户名和邮箱地址。git config --global user.name runoobgit config --global user.emailtestrunoob.com4)$git push这个命令的结果就是将本地分支master中commit的数据abc.txt上传到了远程绑定的master分支上了。5)git add 提交缓存的流程太过繁琐Git 也允许你用 -a 选项跳过这一步。命令格式如下git commit -a6)git reset HEAD命令用于取消已缓存的内容。7)克隆线上已有代码到本地git cloneGitHub - 535977672/tp5: test and studygit 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 pull3. 权限问题sudo chown -R www-data:www-data larv4. git的时候每次都需要输入密码git bash进入你的项目目录输入git config [--global] credential.helper store--global可选再输入一次密码就可以了5. .gitignore规则不生效的解决办法git rm -r --cached .git add .git commit -m update .gitignore6. 版本回退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 fenzhi2git checkout fenzhi2删除分支 -D强制删除git branch -d fenzhi2删除远程分支git push origin :fenzhi2分支上传到线上git push --set-upstream origin fenzhi2拉取远程分支到本地git pull origin fenzhi12切换回mastergit checkout master //修改后要commit后切换否则修改内容会一并带到切换后的分支合并指定分支到当前分支git merge fenzhi2取消合并git reset --hard 【merge前的版本号】拉取本地不存在的远程分支git checkout -b 本地分支名 origin/远程分支名合并提交次数1. git rebase -i 版本号第一个必须 pick后面该为 svi清空内容命令 ggdG全选高亮显示按esc后然后ggvG或者ggVG全部复制按esc后然后ggyG全部删除按esc后然后dG如果有冲突修改冲突后git add//git commit无需提交git rebase --continue2. git push -f拉取新分支git checkout -b dev origin/dev3、git 取消本地修改git checkout -- .4、删除分支删除本地分支 git branch -d branch_name删除远程分支 git push origin --delete ranch_name5、查看所有分支git branch --all6、远程分支删除后 git branch --all本地分支还在git fetch --prunegit更新本地仓库# 查看本地的远程仓库地址 git remote -v # 查看本地的用户和邮箱 git config --global user.name git config --global user.email # 重新设置本地的用户和邮箱 git config --global user.name 姓名 git config --global user.email 邮箱 # 清除本地登录信息 git config --global credential.helper store 1、https方式克隆、下载 # https方式重新设置本地的远程仓库地址 git remote set-url origin https://gitee.com/***.git # 拉取代码 git pull 2、ssh密钥方式克隆、下载 # ssh密钥方式重新设置本地的远程仓库地址 # 生成 RSA 密钥 ssh-keygen -t rsa # 直接回车3次 # linux公钥默认生成路径 ~/.ssh/id_rsa.pub # 设置linux权限 chmod 600 ~/.ssh/.ssh/id_rsa # win公钥默认生成路径 C:\Users\Administrator\.ssh\id_rsa.pub # 复制公钥文件内容到码云添加到自己的ssh公钥里。 # 重新设置本地的远程仓库地址 git remote set-url origin gitgitee.com:***.git # 拉取代码 git pull