1.初始化git仓库
git init
2.克隆网上项目
git clone + ssh地址
3.新增文件
git add + 文件名 //添加指定文件
git add -A //添加所有文件
git add --all //添加所有文件
4.将文件提交到本地仓库
git commit -m + ‘说明信息’
5.查看仓库当前状态
git status
6.对比文件不同点
git diff + 文件名
7.查看历史提交日志
git log
git log --pretty=oneline //去掉繁琐信息后的日志
8.版本回退
HEAD表示当前版本,上一个版本就是HEAD^ , 上上一个版本就是HEAD^^,往上n个版本就是HEAD~n
git reset --hard HEAD^
如果当前命令行窗口还没有被关掉,可以顺着找回上面某个版本的commit id的版本,比如commit id为ef31059755944d6c5d4282f6da44ef8bbcb866fb,则可以返回到此版本:
git reset --hard ef310 //id不用写全,取前面几位就可以了
9.查看输入过的历史命令
git reflog //可以从历史命令查到commit id,从而再返回到该版本
10.工作区和暂存区
工作区:在电脑里能看到的目录
git add把文件修改添加到暂存区(stage / index)
git commit把暂存区的所有内容提交到当前分支
11.显示文件信息
cat + 文件名
12.查看工作区和版本库里面最新版本的区别:
git diff HEAD – 文件名
13.丢弃工作区的修改
git checkout – 文件名
让文件回到最近一次git commit 或 git add时的状态
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
14.把暂存区的修改撤销掉,重新放回工作区
git reset HEAD 文件名
15.从版本库中删除文件
git rm 文件名,并且git commit
16.创建SSH Key
ssh-keygen -t rsa -C “邮件名”
在C盘用户目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。id_rsa.pub里的内容即为SSH Key。
17.关联远程仓库
git remote add origin git仓库名
18.把本地库的内容推送到远程库
git push -u origin master
第一次推送需要加上-u
后续使用git push origin + 分支
19.创建并切换分支
git checkout -b 分支
git branch 分支 //创建分支
git checkout 分支 //切换分支
20.查看当前分支
git branch
21.合并指定分支到当前分支
git merge 分支
22.删除分支
git branch -d 分支
23.查看分支的合并情况
git log --graph --pretty=oneline --abbrev-commit
24.禁用Fast forward合并
git merge --no-ff -m ‘说明信息’ 分支
25.把当前工作现场"储藏"起来,等以后恢复现场后继续工作
git stash
26.查看储藏的工作现场
git stash list
27.恢复工作现场
git stash apply //恢复后,stash内容并不删除,需要使用git stash drop 删除
git stash pop //恢复的同时把stash内容也删除
28.强行删除一个没有被合并过的分支
git branch -D 分支
29.比较两个分支
git log dev ^master //查看dev有,而master中没有的
30.新建文件并编辑
vi 文件名
冒号: 进入编辑模式
q 退出
x 退出编辑并保存
31.查看目录下文件
ls
32.查看远程库的信息
git remote
git remote -v //显示更详细的信息
33.在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
34.建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
35.把本地未push的分叉提交历史整理成直线
git rebase //俗称‘变基’
36.打标签
git tag 标签名
git tag //查看所有标签
git tag 标签名 + 某版本的commit id //给某个版本打标签
37.查看标签信息
git show 标签名 //标签不是按时间顺序列出,而是按字母排序
38.创建带有说明的标签
git tag -a 标签名 -m ‘说明信息’ + 某版本的commit id //-a指定标签名,-m指定说明文字
39.删除标签
git tag -d 标签名
40.推送某个标签到远程
git push origin 标签名
git push origin --tags //一次性推送全部尚未推送到远程的本地标签
41.把远程标签删除
git push origin :refs/tags/标签名
42.删除已关联的远程库
git remote rm origin
43.让Git显示颜色
git config --global color.ui true
44.删除远程分支
git push --delete origin 分支名
45.修改本地分支名
git branch -m 旧分支名 新分支名