Git使用

Git是什么?

git是一个代码版本管理工具,相当于在Windows中有不同的文件夹,不同文件夹存放着各个版本的代码

git的工作区域:工作区    add  ->    暂存区   commit   ->    git本地仓库   ->  push  远程仓库

Git怎么用?

本地库操作

git  命令名  --参数

查询配置信息:git config --list 

1,设置签名,此命令有级别区分

     项目级别/仓库级别

    设置用户名 :git config user.name 'myname'

    设置用户名邮箱:git config user.email '[email protected]'

    系统级别

    设置用户名 :git config --global user.name 'myname'

    设置用户名邮箱:git config --global user.email '[email protected]'

    级别优先级

    就近原则:如果项目级别和系统级别二个都有则使用项目级别,如果只有系统级别则使用系统级别,二者都没有不允许

    该设置在远程仓库中显示谁提交了该文件,跟你在登录远程仓库的用户名和密码是没有关联的

2,查看git工作区,暂存区的状态

    git status

3,把工作区的新建和修改添加到暂存区

    git add test.java

4,从暂存区移除文件

    git rm --cache test.java

5,从暂存区提交文件到Git本地仓库

    git commit -m"说明描述" test.java

6,查看git仓库的历史版本

    展示版本的全部信息:git log

    展示版本的精简信息:git log --pretty=oneline,此命令只显示后面的版本

    展示版本的精简信息带版本角标:git reflog 

7,回退历史版本

    使用 git reflog 查看本地仓库的历史版本

    git reset --hard 索引值 

    只能后退:git reset --hard HEAD^  一个^后退一步

    只能后退:git reset --hard HEAD~n  后退n步

    reset 的 hard soft mixed

    soft:只移动本地仓库,mixed:移动本地仓库和暂存区,hard:本地仓库,暂存区,工作区都移动

8,比较文件

    git diff 文件名 :工作区和暂存区进行比较

    git diff 本地库中历史版本  文件名:工作区中的文件和本地库历史记录进行比较

9,查看分支

    git branch -v 

10,新建分支

    git branch hot-fix

11,切换分支

    git checkout hot-fix

12,合并分支(主分支,和新建分支,提交内容到了本地版本库上都会产生操作日志reflog 可以看到主分支和新建分支的提交操作)

    需要先切换到(被合并,需要新加文件的分支上)

    git merge 另一个分支名字

13,解决冲突

    当合并分支的时候,不同分支修改了同一个文件的同一个位置 则会发生冲突

    

冲突的表现

14,解决冲突

    1,git merge 另外一个分支,发生冲突

    2,和另一个分支的作者协商修改冲突文件

    3,修改好冲突文件后,git add , git commit -m "日志"  这里需要注意 commit 后不需再加文件名否则报错

15,git 删除分支

     1 先切换到别的分支: git checkout dev20180927

  2 删除本地分支: git branch -d dev20181018

  3 如果删除不了可以强制删除,git branch -D dev20181018

远程库操作

1,查看关联的远程仓库地址:git remote -v

2,增加关联远程仓库:git remote add origin(地址关联的名字) 远程仓库地址

3,删除关联远程仓库地址:git remote rm 关联名字

4,本地仓库推向远程仓库:git push origin master 如果是https的地址此时会需要进行远程仓库的账号登录

5,克隆远程仓库到本地:git clone 远程仓库地址

    git clone 会进行 1,完整的把远程仓库下载到本地。2,创建origin远程地址别名。3,初始化本地库

6,拉取命令git pull 远程库地址别名 远程分支名      pull = fetch + merge 

    git fetch 远程库地址别名 远程分支名

    git merge 远程库地址别名/远程分支名

7,git 从远程仓库中克隆指定分支

    git clone -b dev 远程仓库地址

8,将本地分支推送到远程仓库

    git push origin(关联地址别名) 本地分支名:远程分支名

Git操作本地仓库三步骤

删除文件

1,工作区删除文件

rm test.java

2,从暂存区删除文件

git rm test.java

3,提交操作到Git本地仓库

git commit -m "提交描述"

新增文件

1,工作区新增文件

add test.java

2,加入暂存区

git test.java

3,提交到Git本地仓库

git commit -m "提交描述"

Git SSH免密登录

1,ssh-keygen -t rsa -C(大写) 远程仓库邮箱

2,在根目录下找到 .ssh  (~ /.ssh) 里面的 id_rsa.pub

3,把id_rsa.pub的内容放到远程仓库的 SSH设置里面,new SSH key,生成 ssh key

4,本地git  使用  git  remote add origin_ssh ssh地址 进行地址关联

5,使用 git push origin_ssh master 即可免密码进行推送

Git报错解决方法

报错:The request URL returned error:403 Forbidden while accessing

原因:私有项目,没有权限,输入用户名和密码

解决:进入 .git / config  将 [remote "origin"]  url  =   https://github.com/用户名/仓库名.git  修改为 [remote "origin"]  url  =   https://用户名:密码@github.com/用户名/仓库名.git

----------------------------------------------------

报错:cannot do a partial commit during a merge

原因:在合并的状态下加了文件名进行提交 git commit -m "resolve conflict" test.java

解决:不需要带文件名,直接使用 git commit -m"日志" 即可

---------------------------------------------------------

报错:

原因:解决冲突完后,直接commit了,需要先进行 add

解决:先进行 git add 然后  git commit -m

---------------------------------------------------

报错:

原因:本地仓库push到远程仓库报错,没有权限,没有加入到开发团队

解决:远程仓库账号需要加入开发团队

-----------------------------------------

报错:

原因:远程仓库的代码是最新的,本地仓库代码比较落后

解决:先 git pull 更新本地仓库代码解决冲突后在 git push 到远程仓库

-------------------------------------------

报错:

原因:拉取的远程仓库分支名字错误

解决:修改正确的分支名

--------------------------------

报错:

原因:分支未完全合并

解决:使用强制删除,或者先进行合并

你可能感兴趣的:(Git使用)