温欣爸比

  • 主页
  • Alfred Workflow
  • 《Vim 练级手册》
  • 常用命令
  • 代码笔记
  • 合辑
  • 在线工具
所有文章 友链 关于我

温欣爸比

  • 主页
  • Alfred Workflow
  • 《Vim 练级手册》
  • 常用命令
  • 代码笔记
  • 合辑
  • 在线工具

Git 常用命令

2017-08-04

有这些命令就够了

  • ssh-key
  • 首次使用 git
  • 初始化项目
  • 删除文件
  • 用户信息
  • 记住密码
  • 撤销操作
    • 重新提交
    • 撤销提交文件
  • 修改remote url
  • 分支
  • 标签
  • 提交检查
    • status
    • log
    • show
    • diff
  • 参考资料

ssh-key

1
2
ssh-keygen -t rsa -C "$your_email"          # 获取 sshkey
cat ~/.ssh/id_rsa.pub # 查看 sshkey

首次使用 git

客户端首次使用 git 提交时需要将 id_rsa.pub 内容提交到 github 上不然每次都会提示输入用户名密码

然后输入必要的配置

1
2
3
4
git config --global user.name wxnacy            # 配置用户名
git config --global user.email xxx@qq.com # 配置邮件
git config --global push.default simple
git push -u origin master

初始化项目

1
2
3
4
5
6
7
8
cd project_root                             # 进入项目目录
git init # 初始化git仓库
git add . # 添加文件到仓库
git commit -m 'init commit' # 提交代码到本地仓库
git remote add origin ${repository_path} # 将项目关联到git server
git pull origin master # 同步代码
git push origin master # push代码到远程仓库
git clone ${repository_path} # 新的位置clone项目

删除文件

1
2
3
4
5
rm -r file_path
git rm -r ${file_path}
git commit -m 'remove'
git pull origin master
git push origin master

用户信息

1
2
3
4
5
git config --global user.name wxnacy            # 配置用户名
git config --global user.email xxx@qq.com # 配置邮件

$ git config user.name # 查看登录名
$ git config user.email # 查看登录邮箱

记住密码

在服务器上 clone 代码第一次通常会提示输入密码,为了下次不再提示,可以在 clone 后做如下操作

1
git config credential.helper store

撤销操作

重新提交

提交后如果发现遗漏可以使用 git commit --amend 重新提交

1
2
3
git commit -m 'initial commit'
git add forgotten_file
git commit --amend

撤销提交文件

1
2
3
4
5
6
7
8
9
git checkout -- <file>              # 取消对文件的修改。还原到最近的版本,废弃本地做的修改。
git reset HEAD <file>... # 取消已经暂存的文件。即,撤销先前"git add"的操作
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ a.py # 回退a.py这个文件的版本到上一个版本
git reset –soft HEAD~3 # 向前回退到第3个版本
git reset –hard origin/master # 将本地的状态回退到和远程的一样
git reset 057d # 回退到某个版本
git revert HEAD # 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit.(代码回滚到上个版本,并提交git)
git merge --abort # 撤销所有合并操作

或者

1
2
git -c core.quotepath=false rm --cached -f -- env.sh
git -c core.quotepath=false checkout HEAD -- env.sh

修改remote url

1
git remote set-url origin ${new_repository_path}

分支

1
2
3
4
5
6
git checkout -b ${new_branch} master    # 从master创建新分支
git checkout ${branch_name} # 定位分支
git checkout -b {local-branch-name} origin/{remote-branch-name} # 从远程分支创建新分支
git merge --no-off ${branch_name} # 将其他分支合并到master
git rebase origin master # master分支合并到当前分支
git pull origin {branch-name} # 拉取远程分支

标签

1
2
3
4
git tag ${tag_name} master              # 创建新分支
git push origin ${tag_name} # 将标签推到远程仓库
git branch -D ${branch_tag_name} # 删除本地分支或标签
git push origin :${branch_tag_name} # 删除远程分支或分支

提交检查

在代码提前前或查看提交记录详情时可能会用到下面几组命令

status

1
git status          # 查看当前版本状态(是否修改)

log

1
2
3
4
5
git log             # 显示提交日志
git log -1 # 显示1行日志 -n为n行
git log --stat # 显示提交日志及相关变动文件
git log -p -m # 显示提交日志及变动的详细情况
git log v2.0 # 显示v2.0的日志

show

1
2
3
4
5
git show dfb02e6e4f2f7b573         # 显示某个提交的详细内容
git show dfb02 # 可只用commitid的前几位
git show HEAD # 显示HEAD提交日志
git show HEAD^ # 显示HEAD的父(上一个版本)的提交日志 ^^为上两个版本 ^5为上5个版本
git show v2.0 # 显示v2.0的日志及详细内容

diff

1
2
3
4
5
6
git diff                                  # 显示所有未添加至index的变更
git diff --cached # 显示所有已添加index但还未commit的变更
git diff HEAD^ # 比较与上一个版本的差异
git diff HEAD -- ./lib # 比较与HEAD版本lib目录的差异
git diff origin/master..master # 比较远程分支master上有本地分支master上没有的
git diff origin/master..master --stat # 只显示差异的文件,不显示具体内容

参考资料

  • 常用 Git 命令清单
  • Pro Git
最近更新
Alfred Workflow 命令行帮助工具
最近热读
Go 判断数组中是否包含某个 item
Vim 高级功能 vimgrep 全局搜索文件
办理北京工作居住证的一些细节
Go 语法错误:Non-declaration statement outside function body
Mac 电脑查看字体文件位置
扫码关注公众号,或搜索公众号“温欣爸比” 及时获取我的最新文章
赏

谢谢你请我喝咖啡

支付宝
微信
  • git
js和css获取屏幕大小
人生为什么活的这么艰难?
  1. 1. ssh-key
  2. 2. 首次使用 git
  3. 3. 初始化项目
  4. 4. 删除文件
  5. 5. 用户信息
  6. 6. 记住密码
  7. 7. 撤销操作
    1. 7.1. 重新提交
    2. 7.2. 撤销提交文件
  8. 8. 修改remote url
  9. 9. 分支
  10. 10. 标签
  11. 11. 提交检查
    1. 11.1. status
    2. 11.2. log
    3. 11.3. show
    4. 11.4. diff
  12. 12. 参考资料
© 2017 - 2022 温欣爸比 京ICP备15062634号 总访问量3385次 访客数3337人次 本文总阅读量3次
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • python
  • flask
  • javascript
  • docker
  • 工具
  • openresty
  • 微信
  • java
  • hexo
  • 杂谈
  • vim
  • git
  • mysql
  • http
  • linux
  • mac
  • tmux
  • ssh
  • 算法
  • 开发
  • node
  • 杂文
  • jinja2
  • maven
  • spring
  • 北京
  • 生活
  • springboot
  • react
  • shell
  • graphql
  • iterm
  • expect
  • nginx
  • sqlalchemy
  • html
  • electron
  • vagrant
  • elastic
  • 宝贝
  • ansible
  • css
  • jquery
  • go
  • markdown
  • awk
  • redis
  • leetcode
  • zsh
  • 漫威
  • ssr
  • android
  • ffmpeg
  • chrome
  • vmware
  • youtube
  • windows
  • jupyter
  • excel
  • jq
  • Mac
  • Homebrew
  • mongo
  • py2
  • HomeBrew
  • movie
  • nodejs

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • Guru99
每天看书
每天背单词
每天一篇
写写代码
听听周杰伦
爱爱老婆