常用命令

git orde name meaning tip
git push origin branch_name push本地分支到远程仓库
git stash apply pull 完毕后出栈
git stash 入栈,进入暂存区
git pull origin master --allow-unrelated-histories 强制pull
git rm -r --cached .DS_Store 如果在刚开始没加gitignore文件,后来加本地会有缓存,要删除
git checkout --track origin/serverfix 是下面命令的简写
git checkout -b serverfix origin/serverfix 从远程分支检出一份本地分支,并切换到该分支
git fetch branch_name 拉一个远程分支
git fetch orgin 同步远程仓库内容到本地
git branch branch_name 创建本地分支
git chekout -b branch_name 创建本地分支并切换到该分支
git checkout -b branch_name origin/branch_name 拉远程分支到本地
git push origin TagName 上传tag
git tag -d TadName 删除本地tag
git push origin --delete tag TagName 删除远程tag
git push origin :branch_name 删除远程分支 “:”前面的空格不能少,原理是push一个空分支到server,相当于删除
git branch -D branch_name 删除本地分支
vim ~/.gitconfig 查看git账户信息
git log 查看log 翻页space退出q
git reset --hard 回到前一次commint之前的状态 一定要记得先commit
git checkout -b develop master 创建develop分支
git checkout master 切换分支到master分支
git merge --no-ff develop 当前在master分之上,将develop分支上的内容合并到master分支
git add -all 表示保存所有变化(包括新建、修改和删除) 也可以用git add .来代替
git status 查看变动的文件
git rebase -i origin/master 合并多个commit
git push --force origin myfeature 合并到远程仓库 如果rebase了一定要用force参数。因为分支历史改变了,跟远程分支不一定兼容,有可能要强行推送
git checkout -- xxxxx 忽略本地未加入暂存队列的文件的修改(该文件相当于被discard) 如果已加入到了暂存列,先执行git reset HEAD -- xxxxx,恢复所有git checkout .
git reset HEAD -- xxxxx 取出已存入暂存队列的文件
git reset --hard xxxx 恢复到指定版本 git log找到要恢复的版本
进入文件目录,git log xxx(文件名),git reset xxxx(版本号) xxxx(文件名),git checkout xxxx(文件名) 恢复单个文件的历史版本
git diff 查看文件冲突 查看指定文件git diff -w xxxx
git status -s 查看文件冲突状态
git show xxxx(版本号) 查看已经commit的内容
git revert HEAD 撤销最近一次的提交 撤销上上次的提交git revert HEAD^
git config --global --list 查看global的配置列表
git config --global --remove-section <name> 删除全局目录下的某个section,eg:user、email git分为system、global、local

–no-ff: 不采用git默认的快进式合并,而是用正常合并

临时分支

git orde name meaning tip
feature分支 功能分支 为了开发某种功能,从develop上分出来。开发完成后,再并入develop
git checkout -b feature-x develop 创建功能分支

git checkout develop

git merge --no-ff feature-x
先切换到develop分支,再把feature分支合并到develop x是参数
git branch -d feature-x 删除feature分支 x是参数
release分支 预发布分支 预发布分支,它是指发布正式版本之前(即合并到Master分支之前),我们可能需要有一个预发布的版本进行测试
git checkout -b release-1.2 develop 创建预发布分支 1.2是参数

git checkout master

git merge --no-ff release-1.2
合并到master分支 1.2是参数

git checkout develop

git merge --no-ff release-1.2
再合并到develop分支 1.2是参数
git branch -d release-1.2 删除预发布分支 1.2是参数
bug分支 bug分支 软件正式发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式
git checkout -b fixbug-0.1 master 创建bug分支 0.1是参数

git checkout master

git merge --no-ff fixbug-0.1
合并到master分支 0.1是参数

git checkout develop

git merge --no-ff fixbug-0.1
合并到develop分支 0.1是参数
git branch -d fixbug-0.1 删除bug分支 0.1是参数
ssh -T git@121.40.53.85 打印出当前用户 121.40.53.85是仓库地址

上传项目到Git远端仓库

  • 首先创建一个远程仓库,得到远程仓库地址
  • 进入本地目录 git init初始化git
  • git add .添加当前目录下的所有文件和文件夹
  • 添加提交信息git commit -m "first commit",这时候并未真正的提交到服务器
  • git remote add origin https://github.com/xxxx/xxxx.git添加远端仓库,origin是默认仓库的名称。
  • 提交到远端仓库master分支git push -u origin master-u表示以后提交都是默认到originmaster分支上
  • 之后提交顺序为
     1 git add .
    2 git commit -m 'xxxxx'
    3 git push

配置SSH

  • 查看是否存在公钥:ls -al ~/.ssh
  • 生成密钥:ssh-keygen -t rsa -C "your_email@example.com",一路回车键
  • eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_rsa
  • 复制公钥:pbcopy < ~/.ssh/id_rsa.pub 参考 github

清楚git信息

find . -name “.git” | xargs rm -Rf #git flow

设置代理(让github的库走代理,如果库在自己公司的服务器上不走代理)

只对github.com设置代理

git config –global http.https://github.com.proxy socks5://127.0.0.1:1080

取消代理

git config –global –unset http.https://github.com.proxy)


参考: - 官方文档 - 进阶 - 简书 - Git使用规范流程 - 理解暂存区域 - git reset 和 git revert - get reset、git checkout、git revert