Header Image

Git笔记

创建时间:6/16/2023 | 更新时间:7/22/2024
40 次阅读 • 0 条评论 • 0 人喜欢

命令别名

cd ~/
vi .bashrc

添加以下内容

# 友好的日志显示
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 友好的文件列表显示
alias ll='ls -al'

创建仓库

克隆一个已创建的仓库

  • 通过 SSH

    $ git clone ssh://user@domain.com/repo.git
    
  • 通过 HTTP

    $ git clone http://domain.com/user/repo.git
    
  • 创建一个新的本地仓库

     $ git init
    

添加修改

添加修改到暂存区

  • 把指定文件添加到暂存区

    $ git add xxx
    
  • 把当前所有修改添加到暂存区

    $ git add .
    
  • 把所有修改添加到暂存区

    $ git add -A
    

提交修改到本地仓库

  • 提交本地的所有修改

    $ git commit -a
    
  • 提交之前已标记的变化

    $ git commit
    
  • 附加消息提交

    $ git commit -m 'commit message'
    

储藏

有时,我们需要在同一个项目的不同分支上工作。当需要切换分支时,偏偏本地的工作还没有完成,此时,提交修改显得不严谨,但是不提交代码又无法切换分支。这时,你可以使用 git stash 将本地的修改内容作为草稿储藏起来。

官方称之为储藏,但我个人更喜欢称之为存草稿。

  • 1.将修改作为当前分支的草稿保存

    $ git stash
    
    1. 查看草稿列表
    $ git stash list
    stash@{0}: WIP on master: 6fae349 :memo: Writing docs.
    
  • 3.1 删除草稿

    $ git stash drop stash@{0}
    
  • 3.2 读取草稿

    $ git stash apply stash@{0}
    

撤销修改

  • 移除缓存区的所有文件(i.e. 撤销上次git add)

    $ git reset HEAD
    
  • 将HEAD重置到上一次提交的版本,并将之后的修改标记为未添加到缓存区的修改

    $ git reset <commit>
    
  • 将HEAD重置到上一次提交的版本,并保留未提交的本地修改

    $ git reset --keep <commit>
    
  • 放弃工作目录下的所有修改

    $ git reset --hard HEAD
    
  • 将HEAD重置到指定的版本,并抛弃该版本之后的所有修改

    $ git reset --hard <commit-hash>
    
  • 用远端分支强制覆盖本地分支

    $ git reset --hard <remote/branch> e.g., upstream/master, origin/my-feature
    
  • 放弃某个文件的所有本地修改

    $ git checkout HEAD <file>
    
  • 删除添加.gitignore文件前错误提交的文件:

    $ git rm -r --cached .
    $ git add .
    $ git commit -m "remove xyz file"
    
  • 撤销远程修改(创建一个新的提交,并回滚到指定版本):

    $ git revert <commit-hash>
    

彻底删除指定版本

  • 执行下面命令后,commit-hash 提交后的记录都会被彻底删除,使用需谨慎
    $ git reset --hard <commit-hash>
    $ git push -f
    

更新与推送

更新

  • 下载远程端版本,但不合并到HEAD中

    $ git fetch <remote>
    
  • 将远程端版本合并到本地版本中

    $ git pull origin master
    
  • 以rebase方式将远端分支与本地合并

    $ git pull --rebase <remote> <branch>
    

推送

  • 将本地版本推送到远程端

    $ git push remote <remote> <branch>
    
  • 删除远程端分支

    $ git push <remote> :<branch> (since Git v1.5.0)
    $ git push <remote> --delete <branch> (since Git v1.7.0)
    
  • 发布标签

    $ git push --tags
    

查看信息

  • 显示工作路径下已修改的文件:

    $ git status
    
  • 显示与上次提交版本文件的不同:

    $ git diff
    

显示提交历史:

  • 从最新提交开始,显示所有的提交记录(显示hash, 作者信息,提交的标题和时间)

    $ git log
    
  • 显示某个用户的所有提交

    $ git log --author="username"
    
  • 显示某个文件的所有修改

    $ git log -p <file>
    

显示搜索内容:

  • 从当前目录的所有文件中查找文本内容

    $ git grep "Hello"
    
  • 在某一版本中搜索文本

    $ git grep "Hello" v2.5
    

分支

增删查分支

  • 列出所有的分支

    $ git branch
    
  • 列出所有的远端分支

    $ git branch -r
    
  • 基于当前分支创建新分支

    $ git branch <new-branch>
    
  • 基于远程分支创建新的可追溯的分支

    $ git branch --track <new-branch> <remote-branch>
    
  • 删除本地分支

    $ git branch -d <branch>
    
  • 强制删除本地分支,将会丢失未合并的修改

    $ git branch -D <branch>
    

切换分支:

  • 切换分支

    $ git checkout <branch>
    
  • 创建并切换到新分支

    $ git checkout -b <branch>
    

标签

  • 将分支合并到当前HEAD中
    $ git merge <branch>
    
本文链接:
版权声明:本文由作者原创,禁止任何形式转载。
笔记 #学习 #开发 #技术 #Git
点个赞 赏杯咖啡 分享到...

评论区

共 0 条评论

© 2019 - 2025 Romi Blog

感谢陪伴:2449 天 2 小时 53 分钟 14 秒

世界就是个垃圾游戏! —— 《游戏人生》

Made with ❤️ by Arimura Sena

RSS 订阅网站地图友情链接