git介绍及常用命令

git介绍及常用命令

1. 什么是git

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

2. git 与 svn

2.1 Git 是分布式的, Svn是非分布式的;
2.2 Git 把内容按元数据方式存储,而 SVN 是按文件;
2.3 Git 分支和 SVN 的分支不同:分支在 SVN 中就是版本库中的另外一个目录;
2.4 Git 没有一个全局的版本号;
2.5 Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
在这里插入图片描述

3. git 的工作区、暂存区、版本库

在这里插入图片描述
3.1 工作区:
项目所在的目录/文件夹,是git init 命令初始化后,git所管理的本地路径;
3.2 暂存区:
stage或index,一般存放在 “.git目录下” 下的index文件(.git/index)中,要将工作区的内容提交到分支,需要先使用git add filename 命令提交到暂存区,再使用 git commit -m “remark” 命令提交到当前分支。
3.3 版本库:
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。标记为 “master” 的是 master 分支所代表的目录树。
3.4 相关操作命令:

git reset HEAD:暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
git rm –cached:直接从暂存区删除文件,工作区则不做出改变。
git checkout . 或git checkout – :用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
git checkout HEAD . 或 git checkout HEAD :会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。
git status:查看状态,包括工作区和暂存区的状态
git add fileName:将工作区的修改,提交到暂存区
git commit -m “remark”:将暂存区的修改提交到当前分支.
git commit -am “remark”:将工作区的修改提交到暂存区,然后提交到当前分支,相当于git add 和 git commit 的合并。
git diff HEAD – fileName :查看工作区和版本库最新版本的区别.

4. 分支管理

4.1 撤销工作区的修改:
git checkout – fileName 只是撤销工作区的修改,对于已经add到暂存区的修改无法撤销。
4.2 撤销暂存区的修改:
git reset HEAD filename 撤销commit前暂存区的修改
4.3 删除文件
git rm -r filename 执行该命令相当于手动删除文件后执行add操作
4.4 版本回退
git reset --hard commit_id
查看commit_id的命令:
git log HEAD表示当前版本
git log --pretty=oneline 简单显示
q 退出git log 显示的提交列表
HEAD^ 上一个版本
HEAD^^ 上上一个版本
HEAD~100 上100个版本.
4.5 合并代码
git merge branchName 将branchName分支合并到当前分支。有冲突需要手动解决冲突方能合并成功。

5. 远程仓库

git remote update origin -p 更新远程分支列表.
git checkout -b branchName origin/originBranchName 新建本地分支并跟踪远程分支
git branch -vv 查看当前分支的详情,包括当前分支所跟踪的远程分支,领先的提交等。
git push 将本地分支推送到远程
git push origin HEAD:orginBranchName 将本地分支推送到远程的新分支。originBranchName并不需要带"origin/"前缀.
git push origin HEAD:dev-lyl-gitshare
注意,推送到远程新分支后,git并不会自动将本地分支所跟踪的分支修改为刚才新建的远程分支,通过.git/config 文件可以看出此点
切换分支:
git branch -b branchName 表示创建分支并切换到新创建的分支。等效于如下两条命令:
git branch branchName ;
git checkout branchName;
删除分支:
git branch -d branchName 删除本地分支
git push origin --delete orginBranchName 删除远程分支,注意,这里的originBranchName 并不需要带“origin/”前缀

6. 设置sshkey以及多账户设置

6.1 命令:
git config user.name 查看当前用户名
git config user.email 查看当前邮箱
git config --global user.name “userName” 修改全局用户名
git config --global user.email “userEmail” 修改全局邮箱
ssh-keygen -t rsa -C “userEmail” 生成ssh公/私钥对
6.2 设置ssh密钥步骤:
ssh-keygen -t rsa -C “email” --默认在C;\users\userName.ssh文件夹下。
生成后,用文本编辑器打开**.pub文件,copy文本内容,粘贴到gitLab/github对应的地方
6.3 多账户:
生成ssh Key时,不同的邮箱指定不同的文件名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值