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文件的内容:

github-addkey-1

创建仓库后:

$ 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

posted @ 2020-10-01 20:50  xsyz  阅读(157)  评论(0编辑  收藏  举报