Git命令

3 篇文章 0 订阅
  • git工作流: https://blog.csdn.net/zyw0713/article/details/80083431

  • Git区域关系

    远程仓库/remote--------本地仓库Repository-------staged暂存区/index----unstage工作区/workspace
    远程仓库/remote--------commited/Repository-------stage/index----unstage/workspace
    远程仓库/remote--------本地仓库Repository-------staged/暂存区----unstage/工作区

  • GIt工作流

  • Git提交版本关系图-每一个commit下面指向一颗树tree


Git配置

#设置邮箱、用户名:
git config --global user.name 'wangzj'  
git config --global user.email '123@qq.com'  在根目录home下.gitconfig文件中全局配置所有用户

git config --local user.name 'wangzj'
git config --local  user.email '123@qq.com' 在.git/config中配置-给当前项目配置

git config --system user.name 'wangzj'
git config --system  user.email '123@qq.com' 在cd ~ 目录下.gitconfig文件中配置-给当前用户配置

#清除配置-打开文件删除
git config --local --unset user.name

#忽略文件配置-创建 .gitignore 文本
#忽略所有后缀为xml的文件
*.xml
#除了web.xml,这个文件需要git管理
!web.xml
test/  忽略test目录中的所有文件
test/*.class 忽略所有class文件
test/*/*.txt  只能忽略 test/a/1.txt;不能忽略test/a/b/2.txt
test/**/*.txt  不管有几级目录都可以-任意级别目录
空目录  默认就是忽略的

基本操作

- git init  初始化git库,必须在空文件夹下
find .git/objects/ -type f 列出目录下所有的文件
- git remote add origin http://..../cpas.git  关联远程仓库
- git remote set-url origin http://..../newCpas.git  修改关联的远程仓库地址
- git clone http://..../caps.git  从远程克隆到本地
- git add a.txt   	工作区提交到暂存区
- git add *.txt  通配符
- git status  查看文件状态
- git commit -m"提交描述"
- git commit --amend -m "修正"  修改上一次提交的描述信息
- git rm --cached  a.txt 	从暂存区还原到工作区,还原到上次add的状态-新加的文件
- git reset HEAD a.txt    同上-从暂存区还原到工作区,无论新旧文件 
- git checkout -- a.txt  将工作区改的文件回滚-从本地仓库中下拉覆盖-还原到已提交commit状态
注意:如果已经修改add到暂存区,再执行checkout回滚是没有效果的,
#重命名文件------start-------
1, git mv a.txt aa.txt  进入暂存区:其实是拷贝了一个新文件,删除旧文件,恢复之后就是2个文件了
后悔:1, git reset HEAD  a.txt  从暂存区还原到工作区,但是为删除状态
	 2, git checkout -- a.txt  取消删除状态-重命名的文件还在成了新文件了
2,操作系统的重命名
	都在工作区:一个是删除状态,一个是新文件状态
	git add 再 git commit -m "rename" 就行了
#重命名文件------end-------      	  

#删除文件操作-----start-----  
1, git rm a.txt   将文件从库里删除,删除之后会被放在暂存区, 删除->暂存区 
 彻底删除: git commit -m '彻底删除a.txt'
 git  rm a.txt 
 后悔:1, git reset HEAD a.txt   从暂存区恢复到工作区
 	  2, git checkout -- a.txt   取消删除操作
2,操作系统删除: 直接在文件夹里删除,还在工作区
	彻底删除: 先git add   再git commit -m '彻底删除'
#删除文件操作-----end----- 


- git tag -a version -m "标签"
- sha1  a.txt  //求hash值
- git hash-object  a.txt  计算hash值
- git show  fc32f  //显示blob文件内容
- git  ls-tree  0568  //查看tree对象内容

- git show -s --pretty=raw  2346  //查看commit对象内容
- cat  .git/refs/heads/master   //查看master指向那个commit对象
- find  .git/objects/  -type  f   //查看所有的提交的对象
- find  .git/objects/  -type  f  | wc -l  //统计所有的提交的对象个数
- git  cat-file -t cd34sdssdww  //查看对象类型: commit  tree  blob
- git blame a.txt  //查看文件每行修改记录--可以追责
- git diff :暂存区 和 工作区的差异
- git diff 57d8  对象区(库里) 和 工作区的差异
- git diff head  最新一次提交对象区(库里) 和 工作区的差异
- git diff -cached 57d8  对象区和暂存区的差异
  • Git分支

    git branch 查看所属分支
    git branch dev 创建新分支dev
    git branch -m master master2 修改分支名称
    #存在未合并内容的分支不能删除,不能删除当前分支
    git branch -d dev 删除分支-自己不能删除自己,切换到其他分支执行

    强制删除dev分支-使用大写D

    git branch -D dev

    git checkout dev 切换到dev分支上
    git checkout 602459 动态切换到指定提交点-游离状态-修改必须提交并且建立新分支
    git merge dev 合并分支(必须先切换到master主支上再执行)
    git merge --no-ff dev 保留所有提交信息
    git log --graph 查看分支合并信息

    git push + 服务器库名 + 主支名 将本地库的变更提交到服务器的主支上
    git push origin master
    #Git创建Develop分支的命令,并切换到新分支develop上
    git checkout -b develop master

    git branch -v 查看每个分支最近一次提交的记录-hash值及描述
    #每个分支记录的commit值在 .git\refs\heads\下的文件内


查看日志

- git log --name-only commitid 查看某一次提交修改的文件列表
- git log  --pretty=oneline  查看提交记录及描述
- git log  -3  查看最近3次的提交
- git log --graph 查看分支合并信息
- git log --graph --pretty=oneline --abbrev-commit  图形显示分支及描述
- git reflog 记录每一次提交

- git reflog  记录每一次提交
    437c42f HEAD@{0}: commit: two
    8421e9e HEAD@{1}: commit (initial): 'one'
- git log --pretty=format: "%h - %an , %ar : %s"  查看提交记录/作者及描述
-  git log --pretty=oneline      		查看提交记录及描述
  8421e9eedbc6e7d3a7d179c6455cfa7acd6170ac 'one'
- git log --pretty=format:"%h - %an , %ar : %s"    查看提交记录/作者及描述
  8421e9e - zhi_jun_wang1 , 82 seconds ago : 'one'

- git show --name-only  commitid 查看某一次提交修改的文件列表
- git show fc94fse 查看树文件内容
- git blame filename 追查文件每一行是谁改动过
- git clean -d -fx ""  其中x删除忽略文件已经对git来说不识别的文件,d删除未被添加到git的路径中的文件,f-强制运行

#Tag 是针对整个项目-与分支没有关系
- git  tag  V1.0   打标记
- git tag -a  v1.0  -m "This is the stable version"  //重量级的标签, 占用对象
- git tag -d v1.0  删除标签
- git tag -l 'V2*' 模糊查询标签
- git archive --format=tar  --prefix=ruby/ v1.0 |gzip >/tmp/ruby1.0.tar.gz
- 
  • 暂存操作-保存现场

    #如果还没有开发完毕,就要切换分支:保存现场stash再切换分支
    git stash 保存现场
    git stash save mystash 保存现场命名为mystash

    • git stash list 贮藏记录列表
    • git stash drop stash@{0} 删除贮藏记录
    • git stash pop 恢复现场-最近一次-将原先保存的删除
    • git stash apply 恢复现场-不删除原保存的内容
    • git stash clear 清空所有贮藏
    • git stash apply name 恢复指定贮藏
    • git stash apply stash@{3} 恢复指定贮藏
    • git stash save -a “message” 新文件也能加入贮藏区中
  • Git版本回退

    git log
    git reset --hard HEAD^^ 回退到上2次版本
    git reset --hard HEAD~n 回退到前n次版本
    git reset --hard 803c3 回退到指定的版本,通过hash值
    git reflog 查看所有提交记录,以便再次跳转到指定版本
    git checkout dev 切换到dev分支上
    git checkout 602459 动态切换到指定提交点-游离状态-修改必须提交并且建立新分支

  • Git远程操作

    git remote add origin https://github.com/wngzj/git2022.git
    git push -u origin master 第一次push加参数
    git remote shwo origin 查看远程地址
    git remote add origin git@github.com/wngzj/git2022.git 使用ssh协议-可以免密登录
    #ssh 免密push 本地-私钥; 远程github存放公钥
    #可以将公钥存在在github中俩个地方:项目的setting中,只有当前项目和本级免密登录–勾选可写权限
    #账户的setting中,账户的所有项目都可以和本机免密登录
    ssh-keygen 生成公钥及私钥

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值