工作学习中的git常用指令整理

目前整理了本人在工作学习中经常用到的git指令,可能不全,后续补充

1. 概念

git可以分成三个阶段

  1. working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了。
  2. index file:是索引文件,它是连接working treecommit的桥梁,每当我们使用git-add命令来登记后,
    index file的内容就改变了,此时index file就和working tree同步了。
  3. commit:只有commit了,我们的代码才真正进入了git仓库。
    我们使用git commit就是将index file里的内容提交到commit中。

2. 基础配置

git --version                查看版本信息
git config --global user.name “xxxxx”            配置用户名
git config --global user.email xxxxx@qq.com            配置邮箱
git config --list                查看配置结果
git config --global core.autocrlf false             让git不要管windows/unix换行符转换的问题
git config --global core.ignorecase false            windows上还需配置

3. 密钥配置

  1. ssh-keygen -t rsa -C 123@qq.com] 一路回车,不用输入任何密码 生成ssh key pair
  2. ssh-add ~/.ssh/id_rsa 将key添加到ssh客户端

如果出现could not open a connection…的错误
先执行eval ssh-agent,在执行ssh-add ~/.ssh/rsa成功ssh-add -l就有新加的rsa了

  1. cat ~/.ssh/id_rsa.pub 查看公钥

同一个电脑配置多个 ssh-key

  1. 生成key
    $ ssh-keygen -t rsa -C "xxxxxxx@qq.com" -f "~/.ssh/github_id_rsa"
    $ ssh-keygen -t rsa -C "xxxxxxx@qq.com" -f "~/.ssh/gitee_id_rsa"
    也可以在提示Enter file in which to save the key时手动输入文件地址
    如果提示文件夹或文件不存在,使用全路径/Users/terminus/.ssh/gitee_id_rsa

  2. `cat ~/.ssh/github_id_rsa.pub`` 查看公钥并添加到网站

  3. vim ~/.ssh/config

# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_id_rsa
# github
Host github.com
HostName github.com
 PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa
  1. 测试
    执行 ssh -T git@github.com
    成功则返回 Welcome to Gitee.com ,yourname!
    执行 ssh -T git@gitee.com
    成功则返回 Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

Macos在~/.ssh下新建config文件无效
真正的配置文件为/etc/ssh/ssh_config
添加密钥文件位置

IdentityFile ~/.ssh/gitee_id_rsa
IdentityFile ~/.ssh/gitlab_id_rsa

4. 指令操作

4.1 基本操作

git add 文件名 把文件修改添加到暂存区
git commit -m 'xxx' 把暂存区的所有内容提交到当前分支
-ma 将add和commit两步合并为一步
git branch -r 查看所有的远程分支
git branch -vv 查看本地分支和远程分支的映射关系
git remote -v 查看远程库信息

git remote remove origin 删除远程地址
git remote add dice https://github.com/xxx 添加远程地址

如果git push出错The current branch xxx has no upstream branch.
原因是本地分支没有和远程分支关联

git push --set-upstream dice 分支名 关联本地分支和远程分支
git branch --unset-upstream 撤销本地分支与远程分支的映射关系
git checkout -b branch-name dice/branch-name 在本地创建和远程分支对应的分支
git log 显示日志,’ --pretty=oneline’显示内容较少
git reflog 查看提交历史(可以看到删除的commit_id)
git log --graph 分支合并图
git reset --hard HEAD^1 回退到当前版本的上一个版本(HEAD指针指向当前版本)
git reset --hard commit_id 根据id回退到某个版本

git clone url 克隆远程仓库的项目(主分支)到本地
git clone -b 分支名 url 克隆远程仓库指定分支
git checkout -b dev 创建dev分支并切换
-b参数表示创建并切换 ,该命令相当于两条命令git branch dev和git checkout dev
git branch 查看当前分支(当前分支前会有一个*号)
git checkout 分支名 切换分支

4.2 git diff 查看文本区别

git diff 查看working tree(工作区)与index file(暂存区)的差别的。
git diff --cached 查看index file与commit的差别的。
git diff HEAD 查看working tree和commit的差别的。(HEAD代表的是最近的一次commit的信息)
git diff -w 消除 No newline at end of file提示,每一个文件最后一句一回车换行结束
git merge dev -m '' 合并dev分支的信息到当前分支(默认使用fast forward模式,但是合并后会丢掉分支信息)
–no-ff 关闭forward模式,以普通模式合并(普通模式合并后的历史有分支,能看出来做过合并)

4.3 stash工作现场

不需要git commit切换到另外一个分支,暂时存储当前分支的未提交内容
git stash 保存当前的工作现场
git stash list 查看工作现场列表
git stash apply 恢复工作现场,但是恢复后,stash内容并不删除,需要 用git stash drop来删除
git stash apply stash@{0} 指定列表中项
git stash pop 恢复的同时删除stash的内容
git stash clear 清空stash列表
git stash show 显示做了哪些改动,默认show第一个存储
如果要显示其他存存储,后面加上stash@{$num},参考git stash apply
git stash save -m 'commen' 给某一次存储添加备注

5. 常见问题

5.1 修改git的远程地址

git remote set-url origin http://git.erp.ocj.com.cn:9000/ocj/platform/inventorycenter

5.2 修改未 push 和已经 push 的注释信息

  • 修改还未 push 的注释:
    git commit --amend修改后保存退出即可。

  • 修改 push 到远端还没有人其他人下载或改动的注释:
    git commit --amend 进入修改页面修改注释信息,修改后:wq保存退出。
    git push --force-with-lease origin master 使用命令push到远程即可

  • 修改已被其他人下载或改动的注释:
    git fetch origin
    git reset --hard origin/master

5.3 基于当前分支建立新分支,初始版本以当前分支为准

git checkout –b v1.0 生成新的分支v1.0并切换(v1.0所有文件与当前分支一样)
git push --set-upstream origin v1.0 推送分支到远程仓库(远程没有该分支自动创建)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值