GIT常用命令表
| 类型 | 命令 | 含义 |
|---|---|---|
| git config | git config --list | 查看git的配置列表 |
| git config --global user.name “xxx” git config --global user.email “xxx@xx.cn” | –global 表示全局,即当前用户都有效,该配置会出现在 ~/.gitconfig 文件;不加–global即局部是只对当前仓库起效,配置信息会在当前仓库根目录/.git/config文件 | |
| git config --global core.editor “vim” | 设置 Git 默认编辑器为 Vim | |
| git config --global color.diff auto | 让 git diff 使用颜色显示差异 | |
| git clone | git clone [url] | 从master克隆 |
| git clone -b branch/Tag [url] | 克隆某一个branch分支或Tag | |
| git push | (1) git push origin --delete [branch_name] (2) git push origin :branch_name | 删除远程分支 |
| git push origin master | 如果远程分支被省略,则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名) | |
| git push origin master:refs/for/master | 将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名,refs/for: 提交代码到服务器之后需要经过code review之后才能进行merge | |
| git push origin master:test-branch | 将本地master分支推送到远程仓库的test-branch分支,如果远程仓库里没有该分支,Git会在远程自动创建这个分支 | |
| git branch | git branch -d | 删除本地分支,删除前会检查merge状态 |
| git branch -D | git branch --delete --force的简写,它会直接删除 | |
| git branch -a | 查看本地和远程所有分支 | |
| git pull | (1) git fetch --all (2) git reset --hard origin/branch | 放弃本地修改,远程仓库直接强制覆盖本地仓库 |
| (1) git pull origin (2) branch (3) git status (4) git add . (5) git commit -m “xxx” (6) git push origin branch | 一般提交代码步骤 | |
| git add | git add . | 本地所有untrack的文件都加入暂存区,并根据.gitignore做过滤 |
| git add * | 忽略.gitignore把所有文件都加入 | |
| git add -A | 提交所有变化 | |
| git diff | git diff origin/branch1 origin/branch2 | 显示两个分支最后commit的内容差异 |
| git diff | 工作区和暂存区比较 | |
| git diff --cached | 暂存区和HEAD比较 | |
| git diff HEAD | 工作区和HEAD比较 | |
| git checkout | git checkout origin/master – path/to/the/file | 单独更新工作区里面的一个特定文件 |
| git checkout -b branch | 创建新分支,如果已经存在同名,会报错 | |
| git checkout -B branch | 创建新分支,如果存在同名,强制建立并覆盖原分支 | |
| (1) git log (2) git checkout commit_id | git log查看某次历史commit id 拉取某次历史commit id的代码 | |
| git tag | git tag v1.0 | 创建一个轻量标签,Git 中的标签(tag)是针对特定 提交 创建的,不受分支的影响。当你在某个分支上创建标签时,实际上是在该分支的当前 提交 上创建标签 |
| git tag -a v1.0 -m “version 1.0 release” | 创建一个附注标签 | |
| git tag <tag_name> <commit_hash> | 为特定提交创建标签 | |
| git show <tag_name> | 查看标签的详细信息 | |
| git tag -d <tag_name> | 删除一个本地标签 | |
| git push origin <tag_name> | 推送单个标签到远程仓库 | |
| git push --delete origin <tag_name> | 删除已经推送了的远程仓库里的标签 | |
| git stash | git stash | 把当前工作区未提交的改动,暂时打包存入stash栈,工作区变回干净 |
| git stash pop | 取出栈最上面一条记录并删除这条stash | |
| git stash apply | 取出改动,但保留stash记录 | |
| git stash list | 查看所有暂存的stash记录 |
git pull拉取代码免密设置
根据命令:
ssh-keygen -t rsa -b 4096 -C “your_name”
生成公钥后查看内容:
cat ~/.ssh/id_ras.pub
将公钥内容添加到远程的Git服务账户中:
远程配置完成后还需要本地的git配置:
git clone拉取完仓库代码后进行git设置:
git config --global user.name “xxx”
git config --global user.email “xxx@xx.cn”
git remote set-url origin git@github.com:user/repo.git
具体设置如下:设置前可以看到是HTTP形式:
然后将其对应的修改为SSH形式:
设置完成后就可以免密操作git pull和git push。