看了廖雪峰的关于git的教程,这个常用指令其实几年前就写了,特此搬上来分享。也方便自己查看。
1.github使用手册
github教程网址:
1.配置用户名和邮箱:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
2.创建版本库:
$ mkdir learngit $ cd learngit $ pwd//显示当前目录 /Users/michael/learngi
3.把当前目录设置为管理仓库:
$ git init Initialized empty Git repository in /Users/michael/learngit/.git/
4.add文件和commit
$ add readme.txt
$ git commit -m "标签"
5.查看工作区的变化
$ git diff 文件名
6.查看当前所有标签
$ git log
6.1标签简略显示
git log --oneline
6.2标签一行显示
git log --pretty=oneline
7.查看工作区状态
$ git status
8.查看文件的变化
$ git diff 文件名
8.查看标签库中文件的变化
$ git diff HEAD -- 文件名
9.查看命令历史
$ git reflog
10.版本回退
git reset --hard 版本号
11.工作区的文件回退到上一个版本
$ git checkout -- 文件名
(注意:只能改工作区的,也就是说你提交到标签库/暂缓区的的不能改)
12.删除工作区的文件
$ rm 文件名
这时候提交到版本库中的话版本库也会删除 就不能恢复了
13.恢复文件
在没有将删除操作提交到版本库中的情况下使用以下命令可以恢复版本库中的最新版本
$ git checkout -- 文件名
14.创建ssh秘钥(分公钥和私钥)
ssh-keygen -t rsa -C "youremail@example.com"
15.创建远程仓库(本地仓库与远程仓库关联)
$ git remote add origin git@github.com:Nick-Hu1993/learngit.git
16.推送分支
$ git push -u origin master
16.推送更新到远程仓库(每次推送更新都要打这个命令)
$ git push origin master
17.克隆仓库
$ git clone git@github.com:Nick-Hu1993/gitskills.git
git clone git@github.com:sudozgj/nzj.git
“Nick-Hu1993”是github的用户名
"gitskills.git"是远程仓库的仓库名
18.选择分支
$ git checkout 分支名
19.创建分支
$ git branch 分支名
19.1创建并切换到刚创建的分支
$ git checkout -b dev
20.查看所有分支
$ git branch
21.查看分支合并图
git log --graph
22.合并分支
git merge 分支名
23.常用分支合并
$ git merge --no-ff -m "备注" 分支名
24.初始化仓库
find . -name ".git" | xargs rm -Rf
25.保存当前的工作文件
git stash
26.遍历出保存的工作文件
$ git stash list
27.恢复工作文件并删除stash
git stash pop
28.销毁feature分支(取消的功能分支)
$ git branch -d feature-vulcan
29.确认并强行删除feature分支
$ git branch -D feature-vulca
30.显示远程仓库的状态
$ git remote -v
origin git@github.com:Nick-Hu1993/learngit.git (fetch)
origin git@github.com:Nick-Hu1993/learngit.git (push)
显示你当前了抓取(fetch)和推送(push)权限
31.推送分支到远程仓库
$ git push origin 分支
32.多人协作
- 查看远程库信息,使用git remote -v;
- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
- 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;
- 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
- 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。
33.创建标签
- 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;
- git tag -a <tagname> -m "blablabla..."可以指定标签信息;
- git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;
- 命令git tag可以查看所有标签。
34.标签管理
- 命令git push origin <tagname>可以推送一个本地标签;
- 命令git push origin --tags可以推送全部未推送过的本地标签;
- 命令git tag -d <tagname>可以删除一个本地标签;
- 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
35.配置git私人服务器
36.git同步远程仓库的代码
$git pull origin <要同步的线路名称>