远端 和 本地操作命令做归并整理
---------------------缩写-----------------------
branch-br | checkout-co | commit-ci | pull-pl | push-ps | status-st
comment : -m(参数)
build:-b(参数)
------------------- 配置-------------------------
git config core.filemode false 忽略文件权限方面的修改
------------------- 本地命令---------------------
git init 把所在目录变成Git可以管理的仓库
git status 查看修改或者新增的文件
git add <path> 把需要提交的文件的信息添加暂存区
git diff fileName 可以查看索引库中文件和原版本的差异
git diff HEAD -- fileName 可以查看工作区和版本库里面最新版本的区别
git commit -m "log" 提交到本地库
git log 显示从近到远的提交日志
git reflog 查看历史命令(带版本号)
git branch 查看当前使用版本
git branch -a 查看本地所有版本
git fetch -v 查看最新版本
git fetch origin feature/20171016_minsheng:feature/20171016_minsheng #从远程库获取代码。
git remote -v 查看远程库信息
git tag 20180123-02 #打标签
git push origin 20180123-02 #推送标签
git checkout master 切换到主干分支
git merge branchName 合并指定分支到当前分支(有的需要root权限)
git checkout -b branchName 在当前分支下,创建并切换到新分支
git branch -D branchName 在主(非当前)分支下,删除本地分支
git branch -D -r origin/BranchName 删除本地的远程分支
git push origin --delete branchName 远程删除git服务器上的分支
------------------- 远端交互命令---------------------
git clone url 拉主干或者分支
没有执行add的撤销
git checkout -- fileName 把文件在工作区内(还没保存到暂存区)的修改全部撤销。
已经执行add,未执行commit的撤销
git reset HEAD fileName 把文件在暂存区的(还没提交到版本库)的修改全部撤销,重新放回到工作区。
已经执行commit,未执行push的撤销
git reset --hard HEAD^ 回退到上一个版本,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本,HEAD~100表示往上100个版本
git reset --hard 3628164 定位到指定版本,版本号没必要写全,具有唯一性就可以了,Git会自动去找。
删除
一种情况是确实要从版本库中删除该文件
git remove fileName
git commit -m "log"
另一种情况是删错了,因为版本库里还有,可以把误删的文件恢复到最新版本
git checkout -- fileName git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
git pull 拉回服务器的更新并合并(master)
git pull origin branch-name
git push origin branch-name 从本地推送分支到远程
git checkout -b branch-name origin/branch-name new本地分支,并与远端exist分支关联。
git branch --set-upstream branch-name origin/branch-name 将本地exist分支与远端exist分支关联。
1. Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区。
2. 因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
3. 当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。 用git log --graph命令可以看到分支合并图
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。 这就是多人协作的工作模式,一旦熟悉了,就非常简单。
参考:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000