[TOC] ## 本地已有项目上传到 github 1. 在 github 上新建一个仓库 2. 输入以下代码 ``` git init git add README.md git commit -m "first commit" git remote add origin git@github.com:idcpj/test1.git git push -u origin master ``` ## 撤销文件更改 `git checkout README.md` ## 撤销所有更改 `git checkout .` ## 撤销 `git rm --cached` 某个文件操作 清楚单个 `git rm --cache test.html` 清楚缓存区的`.idea` ``` git rm --cached [-f][-r] .idea ``` ## 撤销所有 git add 操作 ``` $ git status #查看添加到 git 的文件 $ git reset HEAD . ``` ## 撤销合并 返回上一步 `git reset --hard HEAD^` ## 服务器合并冲突 1. 保留服务器上做的改动 ``` $ git stash $ git pull $ git stash pop ``` 2. 完全覆盖本地 ``` $ git reset --hard $ git pull ``` ## 回退版本 `git reset --hard HEAD^` 回退上一个版本 `git reset --hard HEAD^^` 回退上上一个版本 `git reset --hard HEAD~100` 回退上100一个版本 `git reset --hard 3628164` 回退到commit id 的 ommit id只需写前几位,`git log --pretty=oneline` 可查看你commit id 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。 ### 同步回退到远程服务器 `git push -f` ## `git diff -- cache` 查看缓存区与版本库的差别 需要把文件存入 git add 进入缓存区 和本地版本中文件进行比较 ## 切换远程分支 1. 方法一 ``` git branch -a //列出所有分支 remotes/origin/dev remotes/origin/release git checkout -b 本地分支名 origin/dev //远程分支名 ``` 2. 方法二 ``` git checkout -t origin/release ``` ## 查看本地分支对应的 远程分支 ``` git branch -vv ``` ![](https://box.kancloud.cn/5ade48b7d8ca002774fb065ee8565105_579x67.png) ## 记住密码 方法一: ``` # Linux $ git config --global credential.helper store # MacOs $ git config --global credential.helper osxkeychain ``` 方法二[推荐]: `http://yourname:password@git.oschina.net/name/project.git ` ## 用ssh pull git 中使用ssh 1. 生成ssh ` ssh-keygen -t rsa ` 2. 在gitlab 添加 `git clone git@aaxx.com` ## window 重新设置账户密码 1.打开控制面板(快捷打开win+R,输入control) 2.点击打开用户账户 3.点击凭据管理器 4.点击凭据删除你的git凭据即可 ### 列出远程和本地分支 `git branch -a ` ### 切回到某个标签 `git checkout -b branch_name tag_name ` ### 增加远程仓库 `git remote add origin <remote-url> ` ### 打包项目分支,并在其他地方解压为项目 ``` //在一个项目中导出包,包名为 repo.bundle git bundle create repo.bundle HEAD master //在另一个分支中导入 git clone repo.bundle repo ``` ## clone 只获取最新的commit `git clone --depth=1 http://xxx ` ## 克隆 ### clone 指定分支 `git clone -b <branch-name> https://github.com/user/repo.git ` ### clone 下来指定的单一分支 `git clone -b <branch-name> --single-branch https://github.com/user/repo.git `