Git 常用命令

Git 四个状态:

  1. untracked 没在进入git仓库
  2. unmodified 没有修改
  3. modified 已修改 红色modified
  4. staged 可以进行提交 绿色modified

Git 初始化

  1. git 初始化项目(需要在项目根目录执行)
git init
  1. 配置账号和邮箱
git config --global user.name “yourname”
git config --global user.email “email@email.com ”
  1. 修改远程项目的git 地址(当远程仓库地址迁移时使用)
git remote set-url origin http://test@github.com/paas/common-lib.git
  1. 查看配置
git config --global --list

配置github 权限

  1. 配置github账号和邮箱
  2. 生成ssh密钥对(使用github邮箱)
ssh-keygen -t rsa -C “email@email.com”
  1. 将生成的公钥粘贴到github
查看公钥
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAfdafewqrqerqHZ+I6BeQEy1244II7ZNxjA5pd0yYdDI9RB55WNnV7K+EriLVBec8vMfG+X1NygWqBKFxI+dn2hDy7izVdsaX2LXw0/nArMM4A1wxSZXZ1aQSNohsBFVGmkX1MmzOYuXjTsu0L1/CKQfdafafsgdepjHoyd8gbuUbSPFLU8FITZHKAmjglwYZLx622zXrLm4iJuPespbgIe+NC2EUtJ3ZnhlImTBpaGbF7MjTGSxe+ySCGAYuUhwrL/ghIVcztwjaC2fea9mpWeY925t6X+VgrequiredfafOyO292GCbq4xYNF9RcsiHHnEgRChEwf2sxdzlp/GL9BM4kwx23foxBjIUoTjDFfVsWxyCjPKBqey+vHWNCe0VC28yt/U3x314GdvooINhoE5ZcQ6aCASVyZamEMfXsLrBPN8qZJUJOBO2G/dk= *******@163.com

Github截图:
在这里插入图片描述

常用命令

查看类型命令
  1. 查看状态
git status
  1. 查看分支
git branch # 查看本地分支:

git branch -a # 查看所有分支:
  1. 查看跟踪关系
git branch -vv
  1. 查看日志
git log --oneline

git log --oneline --graph # 带图解

git log # 查看commit的历史 

git log -p # 查看某个文件的修改历史 

git log -p -2 # 查看最近2次的更新内容

git log master..dev # 查看 dev 中比 master 中多提交了哪些内容:

git log dev..master # 注意,列出来的是两个点后边(此处即dev)多提交的内容。同理,想知道 master 比 dev 多提交了什么:
  1. 查看本次commit 修改内容
git show
  1. git diff 文件对比
git diff
git diff --cached # 查看staged状态更改
git diff hard # 查看在一次的修改。
git diff  filepath # 工作区与暂存区比较
git diff HEAD filepath # 工作区与HEAD ( 当前工作分支) 比较
git diff --staged 或 --cached  filepath # 暂存区与HEAD比较
git diff branchName filepath  # 当前分支的文件与branchName 分支的文件进行比较
git diff commitId filepath # 与某一次提交进行比较
变更类型命令
  1. 克隆命令
git clone http://github.com/*****/****.git
  1. 添加
git add . # 添加所有modified到staged状态。 会变成绿色的modified
  1. 拉取
git fetch # 是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
git pull # 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。
git checkout -b feature_01 origin/release_01 # 将远程分支origin/release_01 将取到本地并改名为feature_01 和 切换到此分支
  1. 提交
git commit -m [message] # 提交本地commit,message 提交的信息描述
git commit --amend --no-edit  # 提交commit ,不产生记录信息
  1. 推送
git push origin head:dev_test # 将当前分支推送到远程服务器
git push origin head:dev_test -f # 强制覆盖推送(小心使用)
git push -u origin 分支名称 # 将当前分支推送到远程服务器,将添加新分支


  1. 删除
git branch -d dev_test # 删除本地分支
git push origin :dev_test # 删除远程分支 
git branch -dr origin/dev_test  # 删除远程分支origin/dev_test (实测只是删除了本地的远程分支记录)
  1. 切换
git checkout dev_test
  1. 暂存
git stash # 将当前文件未提交的文件进行暂时保存
git stash pop # 恢复之前暂时保存的文件
  1. 撤销
git撤销本地所有未提交的更改
git clean -df # 只删除所有untracked的文件,如果文件已经被tracked, 修改过的文件不会被回退。
git reset --hard # 把tracked的文件revert到前一个版本,对于untracked的文件(比如编译的临时文件)都不会被删除。
git reset 1.py # 将文件从staged返回到modified状态:
git checkout -- test/test/transfer_base.py # 撤销对本地文件test/test/transfer_base.py 的更改
  1. 回滚
git reset --hard e377f60e28c8b84158 # 回滚到指定的commit 版本

git log --oneline
git log --oneline --graph
git reset --hard HEAD # 回到前一个commit
git reset --hard HEAD^ # 回到上一个commit
git reset --hard 版本号 # 回到指定版本号
git reflog  # 查看引用的log hard 前后的log
  1. 添加文件
git add 1.py
  1. 变基
    变基操作指令:rebase
    说明:
    作用:在对当前分支与主分支进行merge 操作时,将自己当前多次提交commit条数,合并成1条记录 。
    操作方法:
    示例:git rebase -i commit id
    -i 是交互模式
    - 我们设置第二以后的”pick 657a291 add 2.txt” 为” s 657a291 add 2.txt”这里的s就是squash命令的简写。
    - 跳出来了一个临时文件,最上面是commit message 删除。我们修改下这个总体的commit message。
    dev_test_3.6.2.7 对比目标的commit 记录,进行对比操作,重新设置基线,将多条commit记录合并成一条。
    注意:
    • 若dev_test_3.6.2.7 与当前分支已经各自前进,可以将当前分支push 到一个分支,再与目标分支进行merge操作。

rebase 操作:commit id 为修改前的id。

git rebase -i fdb2d2c43c4737fe4453cbfc438348d20001f119
  1. merge
git merge dev # merge dev 分支到当前分支
git merge --no-ff -m "keep merge info" dev  # merge dev 分支到当前分支
  1. 指定文件回到从前
git checkout 版本号 -- 1.py		
git add 1.py
git commit -m "修改了1.py"
git checkout 0b6aedc95213b06bd069c29e1bbf3d84196810eb -- test/stat/alarm/common.py

vi 替换命令

git rebase # 编辑文本时使用
[addr] 表示检索范围,省略时表示当前行。
“1,20” :表示从第1行到20行;
“%” :表示整个文件,同“1,$”;
“. ,$” :从当前行到文件尾;
 
s : 表示替换操作
 
[option] : 表示操作类型
g 表示全局替换; 
c 表示进行确认
p 表示替代结果逐行显示(Ctrl + L恢复屏幕);

示例:1,15s/pick/s/g
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值