Git基础使用
[toc]
配置
命令
参数 —global
表示你的这台机器上所有的Git仓库都会使用这个配置,也可以对某个仓库指定不同的用户名和Email地址。
配置用户名和Email
git config --global user.name "username"git config --global user.email "email@example.com"
基础命令
初始化代码库
$ cd <project_dir>$ git init
添加文件
添加文件到缓存区
- 添加指定文件
git add <filename> - 添加所有文件
git add .
提交到仓库
git commit -m <说明信息>
查看状态
git status
查看修改内容
git diff
- 查看工作取和版本库里最新版本的区别
git diff HEAD -- file

版本回退
查看提交日志
git log --pretty=oneline
参数--pretty=oneline简化输入信息

退回指定版本
git reset --hard commit_id
commit_id 可用HEAD:
HEAD表示当前版本HEAD^表示上一个版本HEAD^^表示上上一个版本HEAD~30表示上30个版本

回到未来版本
- 查看命令历史
退回后 git reflog 查看命令历史,获取commit id, 以便确定要回到未来的哪个版本

- 用回退命令回到未来版本

撤销修改
撤销工作区中修改
git checkout -- file
撤销缓冲区中修改
git reset HEAD <file>
删除文件
git rm <file>

删除本地缓存,但不删除文件
git rm [-r] --cached file_path
远程仓库
创建SSH Key
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
在代码托管中添加key(aliyun code)

分支
- 创建分支
git branch <分支名> - 切换分支
git checkout <分支名> - 创建并切换分支
git checkout -b <分支名称>
将分支提交到远程代码库
git push --set-upstream origin 远程代码库分支名
强制push(本地回滚push)
用于本地回滚后本服务器版本不同,强制覆盖服务器版本git push --force
移除代码库中文件保留本地文件
git rm file_path —cached
合并提交
git rebase -i <commit ID>-i表示交互,就是vim编辑器<commit ID>这里的一定要是需要合并 commit 中最旧 commit 的父 commit ID- 首先列出给定之前(不包括,越下面越新)的所有 commit,每个 commit 前面有一个操作命令,默认是 pick。我们可以选择不同的 commit,并修改 commit 前面的命令,来对该 commit 执行不同的变更操作 | 命令 | 目的 | | —- | —- | | p, pick | 不对该 commit 做任何处理 | | r,reword | 保留该 commit 但是修改提交信息 | | e,edit | 保留该 commit, 但是 rebase 时会暂停,允许你修改这个 commit | | s,squash | 保留该 commit, 但是会将当前 commit 与上一个 commit 合并 | | f,fixup | 与 squash 相同,但不会保存当前 commit 的提交信息 | | x,exec | 指向其他 shell 命令 | | d,drop | 删除该 commit |
Git
# 在commit前配置信息git config --local user.name '名称'git config --local user.email 'email'git config --uglobal user.email '...'git config --uglobal user.name '...'git init # 初始化git status # 查看状态git add 文件名 # 将指定文件添加到暂存区git add . # 当前目录下的所有文件git commit -m '提交描述信息' # 将缓存区文件添加到分支中git log # 查看日志git ls-tree head # 查看分支中所有文件git ls-files # 查看暂存区和分支中所有文件
回滚
git reset # 回滚-- soft 版本号 # 回滚到暂存区-- hard 文件 # 回归到
回滚到回滚前
git reflog
git reset xxx
git checkout 文件名
git stash # 取消当前修改 零时存储到别处
git stash list # 查看零时目录内容
git stash pop # 取回
阿里云code提交
创建新版本库git clone git@code.aliyun.com:lckj-django-projects/cotp.gitcd cotptouch README.mdgit add README.mdgit commit -m "add README"git push -u origin master已存在的文件夹或 Git 仓库cd existing_foldergit initgit remote add origin git@code.aliyun.com:lckj-django-projects/cotp.gitgit add .git commitgit push -u origin master
当修改过仓库 地址改变后执行命令git remote set-url origin 新git地址
执行命令 git remote set-url origin <new url> 更新本地仓库所对应的远程仓库地址;
提交说明
feat:新功能(feature)fix:修补bugperf: 提高代码性能变更docs:文档(documentation)style: 格式(不影响代码运行的变动)refactor:其他代码变更(简化代码、重命名变量、删除冗余代码)、重构(即不是新增功能,也不是修改bug的代码变动)test:增加测试chore:构建过程或辅助工具的变动
