• git基本操作
  • git 上次文件到远程仓库


如果第一次上传,配置一下用户名和邮箱(我的用户名是lays03,邮箱是2725281280@qq.com)




git config --global user.name [username]
git config --global user.email [email.address]


 


如果需要管理本地工程,切换到项目的根目录下,




git init


 


添加需要上传的文件到暂存区




git add fileName (单个文件)
git add dir (dir文件夹下所有文件,包括子目录)
git add . (添加当前目录下的所有文件到暂存区)


 


提交文件到本地仓库


 


git commit -m "init commit"


 


将本地仓库与远程仓库连接




git remote add origin https://github.com/username/仓库名.git


  


将文件推送到远程仓库




git push -u origin master


 


  •  github基本操作

git init

将这个文件夹变成git可以管理的仓库


git remote add origin ​​https://github.com/lays03/testgit.git​


本地和远程仓库关联

git add 文件名

将文件添加到暂存区

git push -u origin master

push到远程仓库

git commit -m "提交的注释"

将文件提交到仓库

git checkout -b dev

创建并切换分支

git status

查看是否还有文件没有提交

git branch

查看当前的分支

git diff 文件名 

查看文件修改了什么内容

git checkout 分支名

切换到相应分支

git log 

显示最近的操作/显示分支合并情况

git merge 分支名

将分支合并到主分支上

git reset --hard HEAD^

回退到文件的上一个版本,如果想回退到上n个版本,在HEAD后加上n个^即可

git branch -d 分支名

删除分支

git reflog

显示每一次操作的详情及版本号

 

 

git reset --hard 版本号

回到对应版本号的版本

 

 

git checkout -- file

丢弃工作区的修改

 

 

 

 



下面介绍git多人协作以及冲突解决的问题

  • 简要介绍

首先说一下git多人协作以及冲突解决的问题

模拟的场景:两个人需要对github上的同一个文件进行操作,这里用一台电脑的两个窗口来模拟。操作对象:readme.txt

事先将github仓库里面的内容clone到本地,并且建好分支dev,因为我们一般不在master分支上直接操作。

  • git多人协作 and 冲突解决
  • 步骤一(在第一个窗口中操作):

进入分支dev,在dev下修改readme.txt文件的内容,并将dev分支push到远程仓库



git add readme.txt

git commit -m "注释(根据自己的需要来写)"

git push origin dev


git各种操作:基本操作 and 多人协作 and 冲突解决_git

 

  • 步骤二(在第二个窗口中操作):

进入第二个窗口,模拟第二个人。从github仓库里面获取内容,并将远程仓库dev分支(步骤一中我们操作的那个分支)下的内容pull到本地dev分支上



git clone https://github.com/username/仓库名.git

git checkout -b dev origin/dev


git各种操作:基本操作 and 多人协作 and 冲突解决_远程仓库_02

 

  • 步骤三(在第二个窗口中操作):

修改文件内容,增加“2222”内容。并且将修改后的文件添加到暂存区,并且push到远程仓库



git add readme.txt

git commit -m "2222"

git push origin dev


git各种操作:基本操作 and 多人协作 and 冲突解决_暂存区_03

 

  • 步骤四(在第一个窗口中操作):

回到第一个窗口,模拟第一个人。修改文件内容,增加“3333”。同样将修改后的文件添加到暂存区,并且push到远程仓库

(命令和步骤三中的一样)

git各种操作:基本操作 and 多人协作 and 冲突解决_github_04

git各种操作:基本操作 and 多人协作 and 冲突解决_暂存区_05

可以看到报错了,原因是已经有别人对远程仓库进行了更新,导致我们第一个人现在操作的对象的版本不是最新的,因为需要重新获取远程仓库里面的内容。

 

  • 步骤五(在第一个窗口中操作):

使用git pull,重新获取远程仓库里面的内容。可以看到显示冲突



git pull


git各种操作:基本操作 and 多人协作 and 冲突解决_多人协作_06

 

  • 步骤六(在第一个窗口中操作):

查看readme.txt文件中的内容,查看冲突代码,<<<<<<<HEAD表示的是当前dev上的冲突内容      >>>>>>>表示的是之前push的那个人dev分支上的冲突内容

我们要做的就是删掉这些“<<<<<<<”和“>>>>>>>”即可。删除完之后,重新git add、git commit、git push

git各种操作:基本操作 and 多人协作 and 冲突解决_git_07

git各种操作:基本操作 and 多人协作 and 冲突解决_远程仓库_08

 

  • 步骤七:

去github中查看情况,首先dev分支上的内容确实更新了,但是master上面的内容并没有。

git各种操作:基本操作 and 多人协作 and 冲突解决_暂存区_09git各种操作:基本操作 and 多人协作 and 冲突解决_多人协作_10

 

这是因为我们一直是在dev分支上进行操作,push的时候也是push到dev分支,这时只要切换到 master,并merge即可。然后重新将readme.txt  push到远程master分支即可。



git checkout master

git merge dev


git各种操作:基本操作 and 多人协作 and 冲突解决_暂存区_11

git各种操作:基本操作 and 多人协作 and 冲突解决_github_12

 

git各种操作:基本操作 and 多人协作 and 冲突解决_git_13

 

到这里,多人协作以及冲突的问题就解决了。

-------------------------------------------------分割线------------------------------------------------

 


谁人畏惧现实,谁人将从梦中消失