Git笔记二 —— Git常用指令总结

最开始接触git的时候看过廖雪峰的Git教程,但是平时使用的只有pull push这些,导致很多指令都不知道或者已经忘了,遇到问题都得靠百度,所以重新看遍教程顺便整理一下。

获取帮助Help

//如三种方法获得 config 命令的手册
$ git help config 
$ git config --help 
$ man git -config

配置Config 

git配置文件目录说明

#--system 系统配置,查看或配置当前系统    config文件在系统目录下:/etc/gitconfig

git config --system user.email "邮箱地址" 

#--global全局配置,查看或配置当前用户    config文件在用户目录下:~/.gitconfig

git config --global user.email "邮箱地址"

#--local 本地配置,查看或配置当前项目(默认,可省略)    config文件在该项目目录下:.git/config

git config user.email "邮箱地址"

//配置账户信息
git config –global user.name "用户名" 
git config –global user.email "邮箱地址" 
//给指令起别名
//co代表checkout
git config –global alias.co checkout  

//设置换行符不转换
//(windows中的换行符为 CRLF, 而在linux下的换行符为:LF,LF 将被转换成 CRLF)
git config –gobal core.autocrlf false 

//设置为区分大小写
git config core.ignorecase false
//列出当前所有配置信息
git config[-local | -global | -system] --list
//查看某一项配置
git config <key>  如:git config user.name

创建版本Create

克隆远程仓库:git clone ssh://user@git.com/demo.git  [自定义仓库名称]

初始化本地仓库:git init

查看更改Diff

查看工作区状态: git status

查看修改内容:
//工作区和暂存区的区别
git diff
//暂存区和分支的区别
git diff --cached
//工作区和版本库里面最新版本的区别
git diff HEAD

修改和提交Commit

添加文件到缓存区: 
git add 文件名
git add . //提交未跟踪和修改文件,但是不处理删除文件
git add --all || git add -A //提交所有文件(包括删除的文件)
提交缓存区内容到本地仓库:
//只会提交添加到缓存区的文件(只提交添加的) 
git commit -m "注释"  
//可以提交修改过,但是没有添加到缓存区的文件(修改过的就能提交) 
git  commit -a -m "备注"  
//重新提交,会覆盖之前的提交信息
git commit --amend  

提交历史Log

git log  //显示从最近到最远的提交日志(详细)
git log --pretty=oneline //只显示commit id(版本号)和注释
git reflog  //记录你的每一次命令

直接查看文件

目录.git\logs\refs\heads可以查看commit id(版本号)和注释

分支Branches

git branch   //列出本地所有分支,当前分支前面会标一个*号 
git branch -a    //列出本地和远程上所有分支,当前分支前面会标一个*号
git branch -r    //列出所有远程分支
创建新分支: 
git branch branchName 
 
删除分支:
git branch -d branchName
//没有被合并过的分支,需要强行删除
git branch -D branchName
合并分支:
//合并指定分支到当前分支
git merge branchName 
//加上--no-ff参数,合并后的历史有分支,能看出来曾经做过合并
git merge --no-ff -m "说明" branchName 
切换分支:
//切换到新分支
git checkout branchName  
//新版本也可以使用switch
git switch branchName  

//创建并切换到新的分支
git checkout -b branchName
git switch -c branchName

//检出远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支
git checkout -b dev origin/dev  
//指定本地dev分支与远程origin/dev分支的链接
git branch --set-upstream-to=origin/dev dev

cherry-pick     复制一个特定的提交到当前分支

 git cherry-pick [commit id]

标签Tag 

创建的标签都只存储在本地,不会自动推送到远程。

查看所有标签:git tag

新建标签,可为指定提交增加标签:git tag 标签名 [commit id]

创建带有说明的标签:git tag -a 标签名 -m "说明"  [commit id] 

查看标签的详细信息:git show 标签名

推送标签到远程:
//推送指定标签到远程
git push origin 标签名
//推送全部尚未推送到远程的本地标签
git push origin --tags
删除标签:
//删除本地标签
git tag -d 标签名
//删除已经推送到远程的标签
1.先本地删除 git tag -d 标签名  
2.从远程删除 git push origin :refs/tags/标签名

远程Remote

远程仓库的默认名称是 origin

建立远程仓库与本地的关联 :git remote add origin git仓库地址

更换远程仓库地址: git remote set-url origin 远程仓库地址 

删除远程库(解除本地和远程的绑定关系):git remote rm origin

查看远程仓库信息: 
//只列出远程仓库名称如origin
git remote 
//显示远程仓库详细地址
git remote -v  

推送Push

提交本地分支到远程仓库: git push -u origin master

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

指定本地master分支与远程origin分支的链接: git branch --set-upstream-to=origin/master master

拉取Pull

git pull = git fetch + git merge

git pull --rebase = git fetch + git rebase

git pull  和 git pull --rebase 结果一样 

git pull --rebase 把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),然后把本地当前分支更新为最新的”origin”分支,最后把保存的这些补丁应用到本地当前分支上,产生一个更为整洁的提交历史。

版本回退Reset  

git reset --hard commit_id/HEAD^ 恢复版本

(HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100) 回退到commit_id版本,暂存区和工作区的内容丢失 

git reset --Mixed (default) commit_id/HEAD^  

回退到commit_id版本,改变HEAD和暂存区,工作区文件不被改变,会显示工作目录下有修改,但没有缓存到工作区 

git reset --soft commit_id/HEAD^

撤销commit信息,但是写的代码仍然保留,index和working copy中的文件都不改变。

●HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset  commit_id。 

● 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。 

● 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。


上传本地项目到github  https://blog.csdn.net/weixin_42735261/article/details/82870851

Git遇到的问题及解决https://blog.csdn.net/weixin_42735261/article/details/122433141

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值