1、创建本地库,添加文件
1.1 创建本地库
先用git跳转到对应的文件夹下,可以手动创建仓库文件夹,也可以在git中使用如下指令创建并跳转:
mkdir filename
cd filename
注:这里的filename为文件夹名
随后输入指令:git init 将该文件夹变成Git可以管理的仓库
1.2 添加文件
指令:先a,后b
a、git add filename ——将文件添加到暂存区
b、git commit -m “annotation” ——将文件添加到工作区
注:这里的fliname带后缀。
先将需要添加到本地库放在库文件夹中,如下readme.txt被添加。
2、git仓库的版本更新与回退,修改撤销等
指令:
git status ——查看修改是否有效
git diff ——比较修改
git log ——查看版本
将修改后的文件进行git add filename, git commit -m "annotation"后,再展示git status结果如下:
使用git log查看提交信息
2.1 版本回退
指令
git log ——查看提交日志
git log --pretty=oneline ——查看简洁提交日志
git reset --hard HEAD^ ——回退到上一提交版本
git reset --hard <commit id> ——回退到特定版本,<commit id>为git log中展示的如下内容:
git reflog ——查看当前仓库的所有提交记录,重启电脑后也能查询
注:提交版本的更改,实际上是用于指向当前版本的HEAD指针的指向改变 。
2.2 撤销修改
情况1:只对文件进行了修改,还没有用git add filename将文件上传到暂存区。
git checkout --filename ——撤销修改
情况2:对文件进行了修改,且用git add filename将文件上传到暂存区了。
git reset HEAD filenmae ——将暂存区的修改回退到工作区,HEAD表示回退到最新版本的filename文件,也可输入commit id回退到想要的版本
2.3 删除文件
a、删除文件:
直接手动删除,或使用指令rm filename进行删除。
b、删除版本库文件:
当文件使用git add,git commit -m提交后,依次输入如下指令对该文件进行删除:
git rm filename
git commit -m “annotation”
c、使用版本库恢复误删除的文件:
git checkout --filename
3、远程仓库
需要掌握:
1)将本机SSH码添加到远程仓库平台中,用于交互验证。
2)添加远程库
3)克隆远程库
远程仓库 - 廖雪峰的官方网站 (liaoxuefeng.com)
3.1 添加远程库
前提:创建好远程库。
指令:
git remoter add origin SSH码 —— 将本地仓库与远程仓库关联
git branch -M branchname ——将远程仓库和本地仓库的主枝修改名称为branchname
git push -u origin branchname ——将本地仓库的所有内容推送到远程仓库origin的branchname枝干中
git push origin branchname ——本地提交内容后推送到远程仓库origin的branchname枝干中
git remote -v ——查看远程库信息
git remote rm origin ——删除名为origin的远程库
注:origin为默认远程库名 。
3.2 从远程库克隆
先将Git使用cd进入合适的文件位置,输入如下指令即可克隆远程库
git clone git@github.com:lanweo/clonerepo.git
注:git@github.com:lanweo/clonerepo.git为SSH码
4、分支管理
4.1 创建与合并分支
创建分支相关
git branch branchname ——创建branchname分支
git checkout branchname ——切换到branchname分支
git checkout -b branchname ——创建并切换到branchname分支
git branch ——查看当前分支
git merge branchname ——将branchname分支合并到主枝上
git branch-d branchname ——删除branchname分支
git switch branchname ——切换到branchname分支
git switch -c branchname ——创建并切换到branchname分支
4.2 解决冲突
当分支、主枝对同一文件修改了不同内容,并且进行了提交,在合并时会产生冲突。
解决方法:
使用vi filename查看文件,将标记中不同分支的内容修改为相同内容,再进行merge快速合并。
注:
4.3 bug分支
指令:
git stash ——将当前工作现场储存起来
git stash aplply ——恢复之前的工作现场
git stash drop ——删除之前储存的工作现场
git stash pop ——在恢复的同时删除
git cherry-pick <commit id> ——复制特定提交到分支
情况:当前工作进行到了一半,还没有调用add,commit上传,出现了bug需要修复。
步骤
1) 用:git stash 将当前工作现场储存起来
2) 切换到需要修复bug的分支,在该分支上创建并切换子枝。
3) 在新建子枝文件bug修复后,回到原分支,进行合并,根据需求删除2的新建子枝。
4) 用git stash aplply恢复之前的工作现场,再用git stash drop删除之前储存的工作现场,或直接用git stash pop在恢复的同时删除。
由于此时恢复的工作现场也有bug,故还需要进行如下步骤:
1)查看之前提交修复后的文件时,Git反馈的如下commit id,即下面的4c805e2。
2)使用git cherry-pick 4c805e2复制特定提交到分支。
4.4 删除分支
在开发新功能时,最好新建一个分支,在该新分支上进行开发。
在没合并前,可以用如下指令进行分支删除:
git branch -d branchname ——删除branchname分支
git branch -D branchname —— 强制删除branchname分支
4.5 多人协作
git remote ——查看远程库
git remote -v ——查看远程库详细信息
注:远程仓库的默认名称是
origin
。git push origin branchname ——将branchname分支上的本地提交推送到远程库中
git checkout -b dev origin/dev ——创建远程
origin
的dev
分支到本地
5、标签管理
标签作用:替代commit id 进行一系列工作,解决commit id 难以阅读,记忆的问题。
指令:
git tag tagname —— 给当前所在分支添加一个名为tagname的标签名
git tag ——查看所有标签
git log --pretty=oneline --abbrev-commit ——查看所有提交的commit id
git show tagname ——展示tagname标签信息
git tag -a tagname -m “annotation” <commit id> ——创建带说明的标签
git tag -d tagname ——删除标签tagname
git push origin tagname ——推送tagname标签到远程
git push origin tags ——推送所有未推送到远程的本地标签
git push origin :refs/tags/tagname ——远程删除tagname标签,需要先删除本地tagname标签