利用命令行提交代码步骤
首先,进入你的项目目录
1:拉取服务器代码,避免覆盖他人代码
git pull
2:查看当前项目中有哪些文件被修改过
git status
具体状态如下:
1:Untracked: 未跟踪,一般为新增文件,此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
2:Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作.
3:deleted: 文件已删除,本地删除,服务器上还没有删除.
4:renamed:文件改名, 因为如果不用特殊处理,改名之后git只会认为你删了这个文件,又新建了另一个文件。
3:将状态改变的代码提交至缓存
git add + 文件
git add -u + 路径:将修改过的被跟踪代码提交缓存
git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
例如:
git add -u vpaas-frontend/src/components
将 vpaas-frontend/src/components 目录下被跟踪的已修改过的代码提交到缓存中
git add -A vpaas-frontend/src/components
将 vpaas-frontend/src/components 目录下未被跟踪的已修改过的代码提交到缓存中
git add .
使用上面的命令将所有的修改的文件提交到缓存区
4:将代码提交到本地仓库中
git commit -m “修改项目代码”
5:将缓存区代码推送到Git服务器
git push
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
1:误将代码提交到缓存中(利用 git add 命令误将代码提交的缓存中)
解决办法:利用 git reset 命令将撤回缓存中的代码。
2:误将代码提交到本地仓库(利用 git commit 命令误将代码提交到本地仓库)
解决办法:
git reset —hard + 版本号
彻底回退到某个版本,本地的代码也会改变上一个版本内容。
开发常用git指令:
git init # 初始化本地git环境
git clone
git config --globa user.name/user.email # 修改全局的用户名称/邮箱
git checkout -b xxx # 基于当前分支创建xxx分支并切换到xxx分支
git checkout xxx # 切换到xxx分支
git checkout -d xxx # 删除本地xxx分支
git checkout -- readme.txt 撤销修改:1. 文件在添加到缓存区前修改,则回退到原工作区状态;2. 文件在添加到缓存区后修改,则回退到原缓存区状态。也即是将readme.txt撤回到最近一次git add或git commit状态(注:--表示在当前分支,如果没有,则切换到另一个分支)
git push origin --delete xxx # 删除远端xxx分支
git push origin xxx:xxx # 将本地xxx分支推送到远端
git branch -a/-r # 查看全部分支/查看远端分支
git branch -d # 删除本地分支
git remote prune origin #删除远端不存在的分支
git pull origin xxx # 将远端xxx分支拉取到当前分支(将git fetch 和 git merge 合并为一步)
git fetch origin xxx # 将远端分支更新到当前分支(单独进行下载和合并是一个好的做法,你可以先看看下载的是什么,然后再决定是否和本地代码合并。git diff xxx xxx, git merge xxx)
git add xxx # 将本地文件xxx添加到stage中
git commit -m "xxx" # 将stage中文件提交到本地仓库,备注为xxx
git commit --amend # 将stage中的文件追加到上一次提交中
git merge xxx # 将xxx分支合并到当前分支,可能会出现冲突,修改冲突后 git commit
git push origin xxx # 将分支推送到远端xxx分支
git stash # 把未完成的修改缓存到栈容器中
git stash list # 查看所有的缓存
git stash pop # 恢复最近一次缓存到当前分支
git stash drop file # 删除缓存的stash
git stash clear # 清空栈内所有缓存
git status # 查看当前分支有哪些修改
git log # 查看当前分支上面的日志信息
git diff # 查看当前没有add的内容
git diff --cache # 查看已经add但没有commit的内容
git diff xxx xxx # 对比两条分支之间不同的代码(可在向远端提交代码之前或合并分支之前看自己做了哪些更改)
git show xxx # 查看某次提交的具体内容
git resert --hard HEAD # 撤销本地修改
目前正在有完成。突然一个紧急的bug需要处理:
git add . # 添加修改到stage
git stash # 添加到缓存
git checkout xxx # 切换到xxx问题分支
git pull origin xxx # 拉取xxx分支的最新代码
git add xxx # 将修改的文件添加到stage
git commit -m “” # 提交修改
git push origin xxx # 推送到远端
git checkout xxx # 切换到之前的分支
git stash pop # 恢复之前修改的内容,继续进行开发