git仓库

安装

下载安装https://git-scm.com/

安装时傻瓜式安装,不用修改选项

安装成功后,右击,会出现:

Git Gui ,图形化界面,一般不用

Git Bash,一个linux终端

GIt Bash常用命令

clear清空终端内容

常用命令

初始化

git init

在项目目录右击git bash,初始化git,会在当前项目增加一个.git隐藏目录,那些版本备份都会在该文件夹下

配置用户信息

该操作一个人只要配置一次

自报家门,在git中设置当前使用的用户是谁

git config --global user.name "xiaoyue"

git config --global user.email "xiaoyue@qq.com" //不一定是真实的,但一定是符合邮箱格式的

添加到暂存区

git add ./readme.md ./代表当前文件夹 ,没有报错代表成功

git add . //提交全部,除了忽略文件之外

提交到本地仓库

git commit -m "我初始化好项目了"

-m : --message 提交信息,方便以后查看时,知道本次提交做了些什么

查看状态

git status

若工作区是干净的,表示没有修改。没有要提交到暂存区的文件,也没有要提交到本地仓库的文件

红色代表有修改代码,但是还没有提交到暂存区

绿色表示有修改,没有提交到本地仓库

一次性提交所有

git commit --all -m "一些说明"

提交到远程仓库

git push 【远程地址】 【分支名】 提交到远程仓库master分支

​如果是第一次提交,会需要填写用户名和邮箱什么的

​把当前分支的内容上传到远程的master分支

git remote add 【给该远程地址起的名字origin】 【远程地址】 设置一个远程的路径

查看所有添加的远程地址git remote -v

​设置完之后,再次提交时可以这样写git push origin master

git push --set-upstream 【远程地址的名字】 master 如果不想每次都填写远程地址,就可以设置一次默认的远程地址和默认的分支,--set-upstream可以缩写为-u

​设置完之后,在提交时就可以这样写 git push

拉取远程仓库的内容

方式一:pull

git pull 【远程地址】 【分支名】

会把远程分支的数据得到,注意一定先要git init初始化一下

如果本地也有内容,拉取时就会合并,如果有冲突,自己手动处理冲突

如果想直接git pull,那你需要在push时用一次-u

git remote add 【给该远程地址起的名字origin】 【远程地址】

git push --set-upstream 【远程地址的名字】 master

方式二:clone

git clone [远程地址]

注意一定先要git init初始化一下

把项目整个克隆下来,多克隆几次会覆盖本地,所以小心使用

查看提交日志/记录

git log //多行显示日志

git log --oneline //查看简洁版日志

git reflog//可以看到所有提交和切换的记录

回溯到之前的版本

方式一

先查看提交日志有几条记录,记录是上面最新下面最旧,从上往下一次为0迭代

git --hard Head~0 回溯到上一次的版本

git --hard Head~1 回溯到上上一次的版本

git --hard Head~2 回溯到上上上一次的版本

回溯完后,你的日志记录就只有回溯之前的了

方式二

git --hard '日志id' //回溯到准确的某个地方

,虽然log只显示之前的记录,但是你还是能通过日志id直接通过此方式进行回溯

分支

git branch dev,创建一个叫dev的分支

git branch查看分支,前面带有*号的表示当前所处分支

git checkout dev,切换到dev分支

git merge dev,合并dev分支到当前分支(有*的那个分支)

情景:假如我在做一个轮播图的功能,花时比较长,只能提交到分支了为了不影响其他人

此时添加分支banner,

切换到banner分支,

​提交代码到分支,

等到更能完成,提交代码到分支

切换到主分支,查看log,你会发现log里并没有分支提交记录,

此时你需要合并banner到主分支,在查看log,就有分支的提交记录了

git branch -d dev 删除某个分支 ,注意:只有不在dev分支的时候才能删除dev分支

ssh方式上传代码

不需要用户名和密码

公钥 私钥

获取公钥

生成你的公钥ssh https://gitee.com/help/articles/4181#article-header0。按照说明文档在git bash上操作获取公钥.

如果已经有公钥了直接获取就行(查看自己电脑有没有配置过公钥,用户>xiaoyue>.ssh>id_rsa.pab 打开此文件,里边就是你的公钥)

  • 运行命令ssh-keygen -t rsa -C "xxxxx@xxxxx.com"
  • 按照提示完成三次回车,即可生成 ssh key
  • 通过查看 cat ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key
  • 复制你的公钥,在线上 码云 添加公钥。 完成此操作,你的电脑就和你线上的码云仓库就打通了

常见报错情况

常见错误一

error: bad signature //错误的签名 fatal: index file corrupt //索引文件损坏

解决方法1:

rm -f .git/index //rm为linux语句,删除文件用的 rm -f表示直接删除

git reset//重置

接单粗暴的解决:

直接删除.git文件,重新init

常见错误二

merge合并dev分支时,出现冲突conflicts!需要手动进行修改选择,删除不要的,留下正确的

HEAD>>>>
...当前分支的代码内容
_____________________________
...dev分支的代码内容
<<<<<dev 

然后再查看状态,该提交的提交

git stash 恢复到上一次提交状态https://www.cnblogs.com/tocy/p/git-stash-reference.html

常见问题三

情景:

A用户修改了index代码上传到github,B用户在没有更新的情况下修改了本地代码,并准备上传。如果上传会报错。

  • 这个时候,应该先拉取远程的代码到本地,再上传,提示有冲突就在本地解决冲突。
  • 如果先上传再拉取就是在远程会出现冲突,远程有冲突不易解决。
  • 所以,养成良好的习惯,先拉取再上传

注意:

如果拉取的时候,bash终端会出现 编辑信息的页面,

此时,按下Esc,再按下:(冒号),再按下w(保存)q(退出),再回车,终端下面会显示:wq

奔跑的蜗牛
原文地址:https://www.cnblogs.com/xiaoyue-/p/10608122.html