Git Bash-常用命令

Linux相关命令

  1. cd: 改变目录
  2. cd ..: 上一目录
  3. pwd: 显示当前所在目录
  4. ls/ll: 列出当前目录中所有文件, 后者更为详细
  5. touch: 新建文件
  6. rm: 删除文件
  7. mkdir: 新建目录
  8. rm -r: 删除文件夹
  9. mv: 移动文件到文件夹
  10. clear: 清屏
  11. reset: 初始化终端
  12. history: 查看历史命令
  13. help: 帮助
  14. exit: 退出
  15. #: 注释

Git配置

  1. 查看配置:
    git config -l
    git config --system --list 系统配置保存在git安装目录
    git config --global --list 当前用户配置保存在当前用户目录
  2. 用户与邮箱:
    git config --global user.name "khru"
    git config --global user.email xx@163.com

基本理论

四个工作区域:

  1. 工作目录 Working Directory
    存放项目代码的地方
  2. 暂存区 Stage/Index
    用于临时存放改动
  3. 资源库 Repository
    安全存放数据的位置,这里面有提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  4. git仓库 Remote Directory

git的工作流程

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 提交暂存区中的内容到本地仓库;
  4. 将暂存区域的文件提交到git仓库。

文件状态

  1. Untracked: 未跟踪
    此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  2. Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致
    这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
  3. Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作
    这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
  4. Staged: 暂存状态
    执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

查看文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

# git add .                  添加所有文件到暂存区
# git commit -m "消息内容"    提交暂存区中的内容到本地仓库 , -m 提交信息

基本操作命令

master : 默认开发分支

origin : 默认远程版本库

Head : 当前所在的分支的最后一次提交

Head^ : Head的父提交

  1. 创建版本库

    git init
      # 在项目根目录执行以创建一个Git代码库
    git clone [url]
      # 克隆一个项目和它的整个代码历史
    
  2. 修改和提交

    git status
      # 查看状态
    git diff
      # 查看变更内容
    git add .
      # 跟踪所有改动过的文件
    git add <file>
      # 跟踪指定的文件
    git mv <old> <new>
      # 文件改名
    git rm <file>
      # 删除文件
    git rm --cached <file>
      # 停止跟踪文件但不删除
    git commit -m "commit message"
      # 提交所有更新过的文件
    git commit --amend
      # 修改最后一次提交
    
  3. 查看提交历史

    git log
      # 查看提交历史
    git log -p <file>
      # 查看指定文件的提交历史
    git blame <file>
      # 以列表方式查看指定文件的提交历史
    
  4. 撤销

    git reset --hard HEAD
      # 撤消工作目录中所有未提交文件的修改内容
    git checkout HEAD <file>
      # 撤消指定的未提交文件的修改内容
    git revert <commit>
      # 撤消指定的提交
    
  5. 分支与标签

    git branch
      # 显示所有本地分支
    git checkout <branch/tag>
      # 切换到指定分支或标签
    git branch <new-branch>
      # 创建新分支
    git branch -d <branch>
      # 删除本地分支
    git tag
      # 列出所有本地标签
    git tag <tagname>
      # 基于最新提交创建标签
    git tag -d <tagname>
      # 删除标签
    
  6. 合并与衍合

    git merge <branch>
      # 合并指定分支到当前分支
    git rebase <branch>
      # 衍合指定分支到当前分支
    
  7. 远程操作

    git remote -v
      # 查看远程版本库信息
    git remote show <remote>
      # 查看指定远程版本库信息
    git remote add <remote> <url>
      # 添加远程版本库
    git fetch <remote>
      # 从远程库获取代码
    git pull <remote> <branch>
      # 下载代码及快速合并
    git push <remote> <branch>
      # 上传代码及快速合并
    git push <remote> :<branch/tag-name>
      # 删除远程分支或标签
    git push --tags
      # 上传所有标签
    

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  1. 忽略文件中的空行或以井号(#)开始的行将会被忽略。
  2. 可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

创建远程仓库

设置本机绑定SSH公钥,实现免密码登录

# 生成公钥
ssh-keygen -t ed25519 -C "Gitee SSH Key"
# 读取公钥
cat ~/.ssh/id_ed25519.pub
posted @ 2024-12-28 22:11  Khru  阅读(27)  评论(0编辑  收藏  举报