Git命令行操作,本地库、远程库操作

 

本地库操作

(1)本地库初始化

$ git init 
Initialized empty Git repository in E:/RuiBoworkspace/Git/ExecSQL/.git/

.git目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改

(2)设置签名

用户名:tom

Email地址:goodMorning@bucunzai.com

作用:区分不同开发人员的身份,邮件地址甚至可以不存在

辨析:代码托管中心的用户名、邮件地址,和签名这个的用户名、邮件地址,一点关系都没有

项目级别/仓库级别:仅在当前本地库范围生效

git config user.name tom 
git config user.email goodMorning@bucunzai.com

系统用户级别:登录当前操作系统的用户范围

git config --global user.name tom 
git config --global user.email goodMorning@bucunzai.com

就近原则:项目级别优先于系统用户级别

签名信息保存位置(项目级别) .git/config(系统级别)家目录下 .gitconfig

(3)基本操作

git status #查看工作区、暂存区状态 
git add #提交更改到暂存区,如果有设置,那么win的LF换行会被替换为Unix的CRLF换行

CR: 回车(Carriage Return) \r

LF: 换行(Line Feed) \n

① Windows系统里面,每行结尾是 回车+换行(CR+LF),即“\r\n”;

② Unix系统里,每行结尾只有 换行LF,即“\n”;

③ Mac系统里,每行结尾是 回车CR 即'\r'。 Mac OS 9 以及之前的系统的换行符是 CR,从 Mac OS X (后来改名为“OS X”)开始的换行符是 LF即‘\n',和Unix/Linux统一了。

git rm --cached <file>... #删除缓存区中的文件
git commit testa.txt

弹出vim编辑器,输入commit信息

编辑testa.txt后

git checkout -- <file>... #撤销更改操作 
git add testa.txt 
git commit -m "第二次提交" testa.txt #使用-m参数,就不用进vim编辑器了

(4)查看日志

git log #查看版本的历史记录,原始,详细 
git log --pretty=oneline #每条日志只显示一行,显示完整hash值 
git log --oneline #hash值只显示一部分 
git reflog #显示指针,需要移动的次数,HEAD@{移动到当前版本需要的步数}

(5)版本回退

git reset --hard 6f5f4a9 #靠索引值返回到前面 
git reset --hard HEAD^ #往后退一个版本,^^就是两个,^^^三步,只能后退 
git reset --hard HEAD~3 #后退3步简易写法,也是只能后退 
git reset --hard HEAD #恢复到当前(最后一次提交)状态

git reset三个参数的对比

--soft:仅仅在本地库移动HEAD指针

--mixed:在本地库移动HEAD指针、重置暂存区

--hard:在本地库移动HEAD指针、重置暂存区、重置工作区

(6)比较文件

git diff [文件名] #对比工作区文件和暂存区文件,不带文件名的话会比较多个文件 
git diff HEAD^ #对比工作区和历史版本

(7)git的分支

git branch -v #查看分支,-v表示查看详细信息 
git branch hot_fix #创建hot_fix分支 
git checkout hot_fix #切换分支到hot_fix

合并分支

#首先切换到要合并的那个分支上,这里是要合并到master 
git checkout master 
#git merge 要合并的分支 
git merge hot_fix

解决冲突

两个分支都对同一个地方修改,并【提交】后,在合并时会发生冲突,如下,会有(master|MERGING)字段表示需要手动解决冲突

vim查看文件后,发现

<<<<HEAD那行到=====那行之间,是当前分支(master)的内容

hotfix-master
 

====到>>>>hot_fix那行之间,是hot_fix的内容

hotfix_hotfix

解决的话,删除特殊标记,并调整内容,然后

git add testa.txt 
git commit -m '解决冲突的信息' #不能够带文件名

(8)hash运算校验工具

常见的hash算法有MD5、SHA-1,git底层采用的是SHA-1算法

MD5长度固定,32位十六进制数

【可自行百度hash.exe】

git的分支管理依赖于指针,主要是创建、移动指针

 

 

 

远程库操作

(1)给远程库取别名

git remote -v #查看有没有取了别名的地址 
git remote add origin https://github.com/zhegeshijiehuiyouai/test.git #以后就用origin来代表这个地址了

(2)推送操作

git push origin master #别名+分支

弹出github的登录框,输入自己的github账号密码即可

(3)克隆项目到本地

git clone https://github.com/zhegeshijiehuiyouai/test.git

① 完成地把远程库下载到本地

② 创建origin远程地址别名

③ 初始化本地库

(4)邀请他人加入项目

点击Settings

添加对方github账号

(5)拉取操作

git pull # 等于 fetch + merge
git fetch origin master #只拉取 
git checkout origin/master #查看拉取下来的文件 
git merge origin/master #合并拉取的分支到本地分支

(6)协同开发时的冲突解决

有人在我们之前提前push了,我们push时就会报错,那么久需要先pull

git pull origin master 
#然后进入merge状态,会有(master|MERGING)字段表示需要手动解决冲突 
#和本地一样,vim编辑修改后再提交就行 
git commit -m "resolve conflict" #和本地一样,不能带文件名 
git push origin master

(7)提交Pull request及Merge request

① 找到需要fork的项目,并fork它,这就是一个远程库的clone

② 利用git clone将代码拉取到本地,修改之后,git push提交到自己的远程库

git clone https://github.com/atguigu2018east/huashan.git xxxxx 
#一顿操作 
git commit -m "注释" 
git push origin master

③ 提交Pull request

④ 系统会列出所做的修改,确认后我们点击Create pull request

⑤ 在弹出的页面中输入标题和内容,点击Create pull request提交

⑥ 【项目创建者】那边就可以看到提交的request,点击具体的request

⑦ 【项目创建者】可以通过这里查看提交信息,对代码进行审核

⑧ 【项目创建者】也可以回复提交者,确认无误后可以点击Merge pull request合并代码

⑨ 【项目创建者】填写合并的信息,并点击Confirm merge

⑩ 【项目创建者】现在可以回到本地库,拉取最新的代码了

git pull origin master

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值