git常用命令汇总

用途git命令说明
创建本地仓库git init当前目录下生成.git文件,用来跟踪管理版本库
配置用户名git config --global user.name "Your Name"--global参数表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
配置邮箱git config --global user.email "email@example.com"--global参数表示这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
添加文件git add file将工作区文件添加到暂存区
删除文件git rm file先手动删除文件,然后使用 git rm file 和 git add file 效果是一样的。
提交修改git commit -m "message"

将暂存区文件提交到当前分支。

-m后面输入的是本次提交的版本说明。

查看仓库状态git status 
查看文件修改内容git diff file

将工作区文件与版本库文件进行对比:

若寄存区有对应文件,则对比工作区、寄存区文件;

否则对比工作区、当前分支文件。

查看历史版本git log显示版本号、提交人、提交时间、版本说明
git log --abbrev-commit版本号缩写
git log --pretty=oneline单行显示,只显示版本号和版本说明
切换版本

git reset --hard HEAD^

git reset --hard HEAD"^"

git reset --hard HEAD~1(数字代表回退的版本数)

git reset --hard commit id

HEAD表示当前版本。

^ 符号在Windows的命令行中是特殊字符,所以会报错。

查看所有分支的所有操作记录git reflog可查看包括commit和reset的操作,包括已经被删除的commit记录,git log则不能查看已经删除的commit记录
撤销工作区文件修改git restore file

如果暂存区有对应文件,则修改撤回后与暂存区文件一致。

否则与当前版本文件一致。

删除寄存区文件git restore --staged file

此次删除寄存区文件操作,并不会影响工作区文件(即使add后工作区文件再次了进行修改)。

生成ssh密钥ssh-keygen -t rsa -C "youremail@example.com"执行成功后,在用户主目录会生成.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。
关联本地仓库与远程仓库git remote add origin git@server-name:path/repo-name.gitgit@server-name:path/repo-name.git 是 GitHub 中的 SSH
删除已关联的名为origin的远程库git remote rm origin 
将本地仓库的一个分支推送到远程仓库上

git push -u origin master

git push origin master

把master分支所有本地提交推送到远程库对应的远程分支上。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

之后,只要本地作了提交,就可以通过命令:git push origin master把本地master分支的最新修改推送至GitHub。(也可以推送其他分支,修改分支名即可)

从远程库克隆一个本地库git clone git@server-name:path/repo-name.git 
从远程库抓取分支并合并到本地分支git pull orgin master:master

如果远程分支(master)要与当前分支合并,则冒号后面的部分可以省略。

如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。

如果当前分支只有一个追踪分支,连远程主机名都可以省略。

git pull origin master --allow-unrelated-histories

--allow-unrelated-histories : 该选项可以合并两个独立启动仓库的历史。

解决fatal : refusing to merge unrelated histories

取回origin远程库的master分支,与本地仓库的当前分支合并。

创建分支git branch namename为分支名
切换分支

git checkout name

git switch name

name为分支名
创建并切换分支

git checkout -b name

git switch -c name

name为分支名。

git checkout命令加上-b参数表示创建并切换,相当于上面两条命令。

git switch命令加上-c参数表示创建并切换,相当于上面两条命令。

查看分支git branchgit branch 命令会列出所有分支,当前分支前面会标一个*号。
合并指定分支到当前分支git merge namename为分支名
git merge --no-ff -m "merge with no-ff" dev--no-ff 表示禁用fast forward,会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息。
删除分支git branch -d namename为分支名
git branch -D name

name为分支名。

如果要丢弃一个没有被合并过的分支,需要通过git branch -D name强行删除。

查看分支合并图git log --graph 
把本地未push的分叉提交历史整理成直线git rebase目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
本地关联远程分支git branch --set-upstream-to=origin/remote_branch  your_branchorigin/remote_branch是本地分支对应的远程分支;your_branch是当前的本地分支。
储藏当前工作区git stash

把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

stash是本地的,不会通过git push命令上传到git server上。

git stash save "xxxx"xxxx为stash版本说明,推荐使用
查看储藏列表git stash list 
恢复stash到工作区git stash apply

使用apply命令恢复后,stash内容并不删除,需要用git stash drop来删除。

在使用git stash apply命令时可以通过名字指定使用哪个stash,默认使用最近的stash(即stash@{0})。

git stash pop

这个指令将缓存堆栈中的第一个stash删除,并将对应修改应用到当前的工作目录下。

删除stashgit stash drop stash@{0}删除对应版本的stash
删除所有stashgit stash clear 
复制一个特定的提交到当前分支git cherry-pick commitcommit为特定提交的commit id
查看远程库的名称git remote 
查看远程库的详细信息git remote -v

显示可以抓取和推送的origin的地址。

如果没有推送权限,就看不到push的地址。

创建标签git tag tagname

给当前分支打标签。tagname为标签名。

默认是打在最新提交的commit(HEAD)上的。如果要给历史版本打标签,加上历史版本的commit id就可以了。

创建带有说明的标签git tag -a v0.1 -m "version 0.1 released" commit_id-a指定标签名,-m指定说明文字。
删除标签git tag -d v0.1因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。
git push origin :refs/tags/v0.1如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后,从远程删除。
推送标签到远程git push origin tagname推送某个标签到远程
git push origin --tags一次性推送全部尚未推送到远程的本地标签
查看所有标签git tag标签不是按时间顺序列出,而是按字母排序的。
查看标签信息git show tagname标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
解决warninggit config --global core.autocrlf false

warning: LF will be replaced by CRLF in 

原因是存在符号转义问题。

windows中的换行符为 CRLF, 而在linux下的换行符为LF,所以在执行 add 时出现提示,解决办法:

git config --global core.autocrlf false

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值