ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

git

2022-04-04 23:35:14  阅读:175  来源: 互联网

标签:文件 git 状态 暂存区 版本 分支


一、git的基本概念

0 workingspace 工作区:平时存放项目或是代码的地方。 stage/index 暂存区:用于临时存放改动,只是一个文件(存在于版本库),保存即将提交到文件列表信息,简而言之暂存区保存的是映射关系。详细描述 repository 仓库区:安全存放数据的位置,这里有提交的所有版本的数据。(HEAD指向最新放入仓库的版本) remote 远程仓库:托管代码的服务器,用于项目的远程数据交换。   0 本地中的 .git 文件夹下为git的版本库,一般不需要随意改动,只通过命令来操作。  

二、git工作区文件状态以及设置文件忽略

# 从网络上克隆一个git库
git clone [url]
# 在本地当前目录下初始化一个git库
git init 
# 查看文件状态
git status [filename] #查看某个文件状态
git status # 查看所有文件状态

  • untracked:未跟踪状态,文件在git项目文件夹中,但并没有加入到git库,不参与版本控制。通过git add将状态变为staged。
  • unmodify:文件入库但未修改,即版本库中的文件快照内容与工作区完全一致。如果此时被修改,则状态变为modified,如果使用git rm移出版本库,则成为unstracked状态
  • modified:文件已经修改但未进行其他操作。如果使用git add可进入暂存区staged状态,使用git checkout则丢弃修改,返回到unmodify状态。(git checkout从库中取出文件,覆盖当前修改)
  • staged:执行git commit则将修改同步到库中,这时库中的文件和工作区的文件又变为一致,文件状态为unmodify状态。执行git reset HEAD filename取消暂存,文件为modified状态。
注:当一个文件直接粘贴到工作区或是刚刚才创建(指git库中没有此文件),git add后直接进入staged状态。  
设置文件忽略 将不加入版本控制的文件设置成忽略,在根目录下创建‘.gitignore'文件,以下为添加忽略规则:
  1. 空行或以#开头的行将被忽略。
  2. 可以使用linux通配符。
  3. 如果名称前有(!),表示意外规则,不被忽略。
  4. 如果名称前有一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称后有一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件。
 

三、配置用户名和密码

# 生成连接远程(github或是码云等)的密钥
ssh-keygen -t rsa -C "email@example.com"

注:登陆github之后,点击右上角下拉菜单---点击setting---在左侧导航栏点击SSH and GPG keys---点击New SSH keys---title根据情况自己填写,key为复制本地的公钥内容。(windows下公钥保存路径默认为C:\Users\xxx\.ssh)  

四、使用git命令管理版本

git add <filename>  # 添加文件到缓存区
git add .   # 添加所有文件到缓存区
git commit -m <message>    # 提交一次变更到本地git仓库
git log    #查看变更日志
git reset <filename>   # 将某文件从暂存区退回

git reset <commitID> --hard  # 将版本变更为指定版本,并且不保留变更
git reset <commitID> --soft  # 将版本变更为指定版本,并且保留变更(staged)
git reset <commitID> --mixed  # 将版本变更为某个版本,并且保留变更(modified)
注:commitID由git log命令获得的前七位哈希值

git checkout -b <name> <template>
# name:新分支名 template:模板名

git branch   # 查看所有分支
git checkout <branchName>  # 切换分支
git merge <branchName>   # 合并当前分支和指定分支的变更

git push   # 将当前分支推送至远端
git push --set-upstream origin <branchName> # 将当前分支推送至远端并设置远端为上流分支
git fetch   # 拉取远端仓库分支
git checkout -b <name> origin <template>  # 以远端分支为模板创建新分支

git rebase    # 将新分支创建之后提交之前,两分支同时发生的改变按照时间顺序排列
  参考: 关于git暂存区的理解 关于工作区,版本库和暂存区的关系和本地的存储位置 linux通配符 rebase和merge的区别    

标签:文件,git,状态,暂存区,版本,分支
来源: https://www.cnblogs.com/100-rzsyztd/p/16101020.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有