Git命令行操作
-
本地库初始化
- git init
-
设置签名(用户名和邮箱地址)
- 项目级别/仓库级别:仅在当前本地库范围内有效
- git config user.name lvhang_pro
- git config user.email sdllyux@163.com
- 系统用户级别:登陆当前操作系统的用户范围(一般只需要设置全局的签名就行)
- git config --global user.name lvhang_glb
- git config --global user.email sdllyux@163.com
- 级别优先级
- 就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名
- 项目级别/仓库级别:仅在当前本地库范围内有效
-
查看工作区和缓存区的状态
- git status
-
提交
- git add 将工作区的“新建/修改”添加到暂存区
- git rm --cached 删除暂存区的文件
- git commit -m “commit message” [file name] 将暂存区的内容提交到本地库
-
查看历史记录
- git log
- git log --pretty=oneline 每条日志只显示一行
- git log --oneline
- git reflog
- 多屏显示控制方式:
空格向下翻页
b 向上翻页
q 退出
-
前进后退
- 基于索引值操作(推荐)
- git reset --hard 索引值,例如:git reset --hard 0fc8b4a
- 使用^符号:只能后退
- git reset --hard HEAD^
- 注:一个^表示后退一步,n 个表示后退n 步
- 使用~符号:只能后退
- git reset --hard HEAD~n
- 注:表示后退n 步
- reset的三个参数
- –hard参数:在本地库移动HEAD 指针,重置暂存区,重置工作区
- –mixed 参数:在本地库移动HEAD 指针,重置暂存区
- –soft 参数:仅仅在本地库移动HEAD 指针
- 基于索引值操作(推荐)
-
删除文件并找回
- 前提:删除前,文件存在时的状态提交到了本地库。
- 操作:git reset --hard [指针位置]
- 删除操作已经提交到本地库:指针位置指向历史记录
- 删除操作尚未提交到本地库:指针位置使用HEAD
-
比较文件差异
- git diff [文件名] 将工作区中的文件和暂存区进行比较
- git diff [本地库中历史版本] [文件名] 将工作区中的文件和本地库历史记录比较,不带文件名比较多个文件
-
创建远程仓库
- git remote add origin https://gitee.com/sdllyux/lvhang-test.git 给远程仓库地址起个别名叫origin
- git remote -v 查看保存的地址
-
推送、克隆和拉取
-
git push origin master 向origin的master分支推送
-
git clone https://gitee.com/sdllyux/lvhang-test.git 克隆
-
git pull origin master 从origin拉取到master分支
-
git fetch 抓取后,需要checkout origin/master之后才能看到,然后merge操作合并到本地的master
-
注意:git pull=git fetch + git merge
-
-
协同开发时冲突的解决
- 把本地代码更新成最新版再提交
-
分支操作
- git branch -v 查看所有分支
- git branch 分支名 创建一个分支
- git checkout 分支名 切换分支
- 合并分支
- 第一步:切换到接收修改的分支(master)上
- 第二步:执行merge命令,指定另一个分支的名字 git merge lvhang
-
fork+pull request的方式进行跨团队协作
- fork到自己的仓库
- 把代码clone到本地
- 本地修改,然后push到远程分支
- 创建pull request并等待审核通过
- 一般会自动合并,如果想手动合并也可以
- git checkout master
- git pull https://gitee.com/lv-hang-02/lvhang-test.git master
- git push origin master
-
SSH免密登录
- 根目录下执行ssh-keygen -t rsa -C gitee登录用户名
- 进入 .ssh/ 复制 id_rsa.pub 中的密匙,粘贴到gitee的安全设置的SSH公匙
- git remote add origin_ssh git@gitee.com:sdllyux/lvhang-test.git 给仓库的ssh地址添加别名
- 测试