Git命令操作
Git命令操作
大家可以去这个网站查看和使用git的详情操作:https://www.yiibai.com/git/
本地初始化
- 命令:git init
设置签名
- 作用:区分不同开发人员的身份
- 辨析:这里设置的签名和登录远程库(代码托管中心如:Github)的账号、密码没有任何关系。
- 命令
项目级别/仓库级别:仅在当前本地库范围内
git config user.name Peakmain
image.png
git config user.email 2726449200@qq.com
消息保存的位置 .git/config
系统用户级别:登录当前操作系统的用户范围
git config --global user.name Treasure
image.png
git config --global user.email 2726449200@qq.com
信息保存位置:~/.gitconfig 文件
级别优先级
就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别
的签名
如果只有系统用户级别的签名,就以系统用户级别的签名为准
二者都没有不允许
基本操作
- git status:查看工作区、暂存区状态
- git add [file name]:将工作区的“新建/修改”添加到暂存区
- git add . : 将所有修改添加到暂存区
- git commit:提交
我们在输入git commit后,可以先esc然后输入:set nu显示行数,然后我们在第一行输入自己提交信息,比如
image.png
然后esc输入:wq则结束命令
- git commit -m "commit message" [file name]将暂存区的内容提交到本,这就不会走到编辑器
查看历史消息
-
git log
image.png
多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出
-
git log --pretty=oneline
image.png -
git log --oneline
image.png -
git reflog
image.png
HEAD@{移动到当前版本需要多少步}
前进后退
- 基于索引值操作(推荐)
git reset --hard [局部索引]
局部索引值得就是上面git reflog命令中的图片中的f96806e,335f7c4等
比如此时我们回退到335f7c4这个版本
image.png
- 使用^符号:只能后退
git reset --hard HEAD^
注:一个^表示后退一步,n 个表示后退 n 步
- 使用~符号:只能后退
git reset --hard HEAD~n
注:表示后退 n 步
删除文件并找回
前提:删除前,文件存在时的状态提交到了本地库。
操作:git reset --hard [指针位置]
删除操作已经提交到本地库:指针位置指向历史记录
删除操作尚未提交到本地库:指针位置使用 HEAD
git reset --hard HEAD
Git分支
- 创建分支
git branch [分支名] - 查看分支
git branch -v - 切换分支
git checkout [分支名] - 合并分支
第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
第二步:执行 merge 命令
git merge [有新内容分支名]
举例:比如我们现在是只有master分支,创建分支dev,切换到dev分支,然后我们在dev新建一个文件或者修改,然后添加提交上去,这时候我们需要master去合并dev分支,使master进行更新,首先切换到master分支git checkout master,然后master分支上去合并dev分支,git merge dev
-
冲突的解决
冲突原因:多个分支同一个文件,同一位置进行修改了,这时候git不知道怎么合并此时会报错
image.png
Head表示当前分支,master表示主分支
解决方法
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m "日志信息"
注意:此时 commit 一定不能带具体文件名
Github相关操作
创建本地远程库地址别名
关于GitHub的创建我就不说了,比如这时候我们将本地远程库提交到Github,这里我以我之前项目新闻类APP链接为例https://github.com/Peakmain/gankzhihu,每次都记住这么长的链接很麻烦,我们可以用git来保存到本地
git remote -v:用来查看本地
git removte add [别名] https://github.com/Peakmain/gankzhihu
推送
git push [别名] [分支]
克隆
git clone [链接地址]
邀请团队成员
image.png输入另一个GitHub的地址,添加完成后会有一个邀请码,再登录刚刚邀请的账号,复制邀请码,点击同意即可
image.png image.png
拉取
- pull=fetch+merge
- git fetch [远程库地址别名] [远程分支名]
- git merge [远程库地址别名/远程分支名]
- git pull [远程库地址别名] [远程分支名]
解决冲突
- 如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉
取。 - 拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可