这是一篇关于GIT使用的笔记,记录了常用的GIT的一些基本命令(全部终端操作),以便随时查看。
查看git安装路径
which git
将远程代码库克隆到本地
git clone https://github.com/umiyo/md_syntax.git
进入克隆下来的代码库目录(写给小白)
cd md_syntax
为已存在的目录添加git远程库
cd 已存在目录
git init
git remote add origin git远程库地址
查看当前代码库是否有改动信息
git status
将改动添加到working tree
// 直接添加全部改动
git add ./
// 指定添加改动(如:new_folder)
git add new_folder
将改动提交到本地库(一定记得写一下提交信息,加-m参数,如下是建议写法)
git commit -m "提交信息用半角英文双引号或单引号包起来"
将本地库的改动推送到远程库(多人协作时,先将更新远程库代码)
// 将远程库代码更新到本地
git pull origin branch_name(远程库中对应本地库的分支名称,缺省模式下可以不写origin branch_name,建议指明分支)
// 将本地库的改动推送到远程库
git push origin branch_name(本地库中对应远程库的分支名称,缺省模式下可以不写origin branch_name,建议指明分支)
再次对本地库进行修改时,建议先更新远程库代码(尤其是多人协作时)
git pull origin branch_name(远程库中对应本地库的分支名称,缺省模式下可以不写origin branch_name,建议指明分支)
查看分支
git branch
创建分支(先切换到创建分支的基础分支,如以master分支代码为基础创建新的分支newb)
// 切换到基础分支master
git checkout master
// 查看将要创建的分支是否已经存在
git branch -a
// 创建新分支newb
git branch newb
// 删除分支
git branch -d newb
// 强制删除
git branch -D newb
切换分支
git checkout branch_name
撤销改动添加
// 当只执行了git add命令,想要撤销时
git reset
// 当执行了git commit命令,想要撤销时
// 先查看下commit日志
git log
// 回退到指定的commit
git reset <commit_id> // 默认方式,回退到add前
git reset --soft <commit_id> // 回退到commit前
git reset --hard <commit_id> // 将直接丢弃commit_id版本之后的改动,甚用
查看版本差异
git diff // 查看任意两个分支的差异
git diff branch_name // 查看当前分支与branch_name分支的差异
git diff HEAD -- folder_name // 查看当前分支指定目录与前一版本的差异
git diff --stat // 统计文件改动及文件改动的行数
分支合并(合并之前先确保当前分支已经commit)
// 先切换至目标合并分支作为当前分支
git checkout dist_branch_name // 切换到目标合并分支
git merge branch_name // 将branch_name分支与当前分支合并
合并分支上的指定文件
// 先切换到目标合并分支
git checkout dist_branch_name // 切换到目标合并分支
git checkout -p branch_name file_name // 将branch_name分支上的file_name文件合并到当前分支,会列举出不同以便手动合并(建议使用)
git checkout branch_name file_name // 不使用-p参数,当前分支也存在file_name文件,则会强制替换当前分支的file_name文件
拉取远程分支上的文件进行合并
git fetch // 这个还是请大佬讲解吧,只限于会用,讲不清楚
打标签
// 查看标签
git tag
// 创建标签
git tag tag_name
git tag -a tag_name -m "tag note" // 创建有标注的标签
// 将本地的标签提交到远程库
git push origin --tags // 全部推送
git push origin tag_name // 指定推送
// 通配符筛选
git tag -l 'v1.2.*'
// 查看标签相应版本信息
git show tag_name
一些参数说明
至于-l, -a的这些参数就不再这里赘述了,可自行百度或谷歌
--pretty=oneline // 确定输出格式为一行,该参数的其他值请自行搜索
删除文件及恢复
rm file_name // 删除文件
git checkout -- filename // rm后未执行git add可恢复
// 执行了git commit后删除的文件要恢复则需要根据提交日志进行回滚
忽略文件配置,将不想提交到代码库的文件忽略掉
// 不用管.gitignore这个忽略配置文件是否存在,直接
vi .gitignore // 然后在vim方式下将需要忽略的文件名称和路径直接写在这个文件里就行啦
修改远程仓库地址
git remote set-url origin 新地址
不想配置ssh key,又不想每次提交都附带提交信息
// 方式一:设置用户和邮件地址,看参数--global就是全局设置的
git config --global user.name "用户名称"
git config --global user.email "邮件地址"
// 方式二:直接修改当前项目下隐藏目录.git中的config文件,添加以下信息,只对当前代码库有效哦
[user]
name = 用户名称
email = 邮件地址
合并指定提交
cherry-pick commit_index
按意愿显示linguist-language
语言检测支持列表:https://github.com/github/linguist/blob/master/vendor/README.md
// 项目中设置[最简单方式]
1. 创建.gitattributes
2. 直接使用下面设置:
*.* linguist-language=javascript
先前未忽略文件变为忽略时,提交不生效
先清除之前的缓存,再进行提交
git rm -r --cached .
rm -r --cached
后面要加清除缓存的位置,一般直接是当前目录即可。
平时工作用到的基本就以上这些啦,以后遇到新的再来添加。