git的常用命令
git的常用命令
1.创建版本库
初始化仓库
,把这个目录变成Git可以管理的仓库
$ git init
把文件添加到缓存区
,可以一次添加多个文件
$ git add 1.txt 2.txt
把文件提交到仓库
$ git commit -m "wrote fileS"
2.版本控制
查看状态
:
$ git status
查看修改
(此处的修改指的是,提交之后又在本地做的修改):
$ git diff 1.txt
查看历史版本修改
:
$ git log
$ git log --pretty=oneline
回退
到上一个版本
(reset也可以撤销添加到缓冲区的内容):
$ git reset --hard HEAD^ //--hard,指的是回退到上一个提交的同时也修改本地仓库,比如,新建了一个txt文件,然后add,commit,如果用--hard回退,那么这个txt文件也没了。
$ git reset HEAD^ //相当于git reset --soft HEAD^,回退之后txt文件还在。
回退
到指定版本
,包括未来的版本(删除的版本):
$ git reset --hard 1094a //1094a为版本号的前几位,也可以用全部的版本号
查找历史命令
(q是退出):
$ git reflog //可以通过此方法查看提交过的版本号
丢弃工作区的修改
(比如,提交之后又在1.txt中加了文字,用此命令可以回到加文字之前):
$ git restore -- 1.txt //之前是checkout
删除文件
:
$ git rm 1.txt
3.远程仓库
每次向远程仓库上推送的时候为了免去用户验证,可以使用SSH验证。
创建SSH key
:
$ ssh-keygen -t rsa -C "xxxxxxxx@example.com"
登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
创建仓库后:
$ git remote add origin git@github.com:xxxx/xxxx.git
第一次把本地的内容推到远程库
:
$ git push -u origin master
之后的推送:
$ git push origin master
克隆
到本地:
$ git clone git@github.com:xxxxx/xxxx.git
4.分支管理
创建新分支并切换到新分区
:
$ git switch -c dev //之前是checkout b
查看当前分支
:
$ git branch
切换分支
:
$ git branch master
合并分支
(加入现在处于master,dev要合并到master),git merge
命令用于合并指定分支到当前分支:
$ git merge dev
删除分支
:
$ git branch -d dev
保存现场
(保存未完成的分支):
$ git stash
修改完bug之后查看
:
$ git stash list
恢复现场
:
$ git stash apply
$ git stash drop
-----------------
$ git stash pop
在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick <commit>
命令,把bug提交的修改“复制”到当前分支,避免重复劳动。
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>
强行删除。
查看远程库信息
;
$ git remote -v
从本地推送分支,使用git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;
5.标签管理
创建标签
(默认标签是打在最新提交的commit上的):
$ git tag v1.0
给指定的commit创建标签
:
$ git tag v0.9 f52c633(id)
查看标签
:
$ git tag
查看标签信息
:
$ git show v0.9
删除标签
:
$ git tag -d v0.1
推送
某个标签到远程
:
$ git push origin v1.0
一次性推送全部
尚未推送到远程的本地标签:
$ git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
:
$ git tag -d v0.9
然后,从远程删除
。删除命令也是push,但是格式如下:
$ git push origin :refs/tags/v0.9
6.切换GitHub和Gitee
分别给两个远程库起名字
查看远程库
:
git remote -v
关联GitHub
的远程库:
git remote add github git@github.com:michaelliao/learngit.git
再关联Gitee
的远程库:
git remote add gitee git@gitee.com:liaoxuefeng/learngit.git
如果要推送到GitHub
,使用命令:
git push github master
如果要推送到Gitee
,使用命令:
git push gitee master
忽略特殊文件
:
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件
比如:
# Windows:
Thumbs.db
ehthumbs.db
Desktop.ini
配置别名
:
status简化为st,--global
参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。
$ git config --global alias.st status
配置Git的时候,加上--global
是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。每个仓库的Git配置文件都放在.git/config
文件中。
而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig
中