Git配置

Git 命令

git config

用法:git config –global user.name “[name]”  

用法:git config –global user.email “[email address]”

该命令将分别设置提交代码的用户名和电子邮件地址。

git init

用法:git init [repository name]

该命令可用于创建一个新的代码库。

git clone

用法:git clone [url]

该命令可用于通过指定的URL获取一个代码库。

 git add

用法:git add [file]

该命令可以将一个文件添加至stage(暂存区)。

用法:git add *

该命令可以将多个文件添加至stage(暂存区)。

git commit

用法:git commit -m “[ Type in the commit message]”  

该命令可以在版本历史记录中永久记录文件。

用法:git commit -a

该命令将提交git add命令添加的所有文件,并提交git add命令之后更改的所有文件。

git diff

用法:git diff

该命令可以显示尚未添加到stage的文件的变更。

用法:git diff –staged

该命令可以显示添加到stage的文件与当前最新版本之间的差异。

用法:git diff [first branch] [second branch]

该命令可以显示两个分支之间的差异。

git reset

用法:git reset [file]

该命令将从stage中撤出指定的文件,但可以保留文件的内容。

用法:git reset [commit]

该命令可以撤销指定提交之后的所有提交,并在本地保留变更。

用法:git reset –hard [commit]

该命令将丢弃所有的历史记录,并回滚到指定的提交。

git status

用法:git status

该命令将显示所有需要提交的文件。

git rm

用法:git rm [file]

该命令将删除工作目录中的文件,并将删除动作添加到stage。

git log

用法:git log

该命令可用于显示当前分支的版本历史记录。

用法:git log –follow[file]

该命令可用于显示某个文件的版本历史记录,包括文件的重命名。

git show

用法:git show [commit]

该命令经显示指定提交的元数据以及内容变更。

git tag

用法:git tag [commitID]

该命令可以给指定的提交添加标签。

git branch

用法:git branch

该命令将显示当前代码库中所有的本地分支。

用法:git branch [branch name]

该命令将创建一个分支。

用法:git branch -d [branch name]

该命令将删除指定的分支。

git checkout

用法:git checkout [branch name]

你可以通过该命令切换分支。

用法:git checkout -b [branch name]

你可以通过该命令创建一个分支,并切换到新分支上。

git merge

用法:git merge [branch name]

该命令可以将指定分支的历史记录合并到当前分支。

git remote

用法:git remote add [variable name] [Remote Server Link]

你可以通过该命令将本地的代码库连接到远程服务器。

git push

用法:git push [variable name] master

该命令可以将主分支上提交的变更发送到远程代码库。

用法:git push [variable name] [branch]

该命令可以将指定分支上的提交发送到远程代码库。

用法:git push –all [variable name]

该命令可以将所有分支发送到远程代码库。

用法:git push [variable name] :[branch name]

该命令可以删除远程代码库上的一个分支。

git pull

用法:git pull [Repository Link]

该命令将获取远程服务器上的变更,并合并到你的工作目录。

git stash

用法:git stash save

该命令将临时保存所有修改的文件。

用法:git stash pop

该命令将恢复最近一次stash(储藏)的文件。

用法:git stash list

该命令将显示stash的所有变更。

用法:git stash drop

查询git版本命令:(git是因liux系统研发而来所以懒的话可以用tab键来补齐)
git  --version
通过命令来追踪到底谁做了修改,我们需要配置对应的用户名与邮箱地址:
git config --global user.name "写名字";
git config --global user.email 写邮箱地址;
git config --list  查询配置结果


工作流程详解:
提交的时候要经过暂存区
stage files 提交到暂存区
commit 然后在提交到本地仓库
当我拉出来的时候不需要经过暂存区直接能拉出来
checkout the project 拉取到工作区当中

git命令:
初始化git本地仓库
git init    本地初始化完了以后是一个空仓库
执行git add 命令就能将文件添加到暂存区
通过 git status 查看工作目录与暂存区文件状态 看一下哪些文件有被追踪到那么没有被追踪到 
追踪到就是绿色没有就是红色
最后通过 git commit提交到本地仓库就是一个完整的流程 提交的时候要 加-m 单引号里面写注释一定要写       ‘  注释  ’ 完整命令就是 :git commit -m ‘ 注释 ’
怎么去看提交的信息呢通过命令 git log去看完整的提交日志信息

文件的修改与提交:
比如修改了文件里面的内容此时就需要 git add进行一个提交 到暂存区接着查询git status 进行查询有没有被追踪到 接着将修改后的文件进行 git commit -m ‘注释’  光写 git commit会强制进入vim编辑当中 需要通过i
进行插入在最顶部编写注释 写完Esc :wq保存退出即可再次查询 git log就可以看见之前提交和这次提交的记录了
如果修改了文件数据没有进行暂存区的而是直接进入到本地仓库在查询追踪就会报错此时就可以去查看git本地库和工作区的这个文件的区别通过命令 git diff HEAD --文件名 就可以查看变动之前和变动之后文件的一个区别
查询结果详解:
---:表示变动前的文件
+++:表示变动后的文件
“@@”作为起始和结束“@@”
@@ -1,2 +1,3@@:减号表示第一个文件,“1”表示第一行,“2”表示连续2行。同样的,“+1,3”表示变动后,成为第二个文件从第一行开始连续3行。

文件撤销:(如果不小心提交错了到暂存区了就可以用此功能)
撤销命令:git restore --staged 文件名  (后面可以跟多个文件名)这个不仅暂存区本地仓库的提交的文件也可以移除
这个命令也可以进行撤销:git reset HEAD 文件名    只能取消上一次的操作 只能取消暂存区文件


版本回退:
文件修改后提交的次数很多时,对于版本库中存放的文件就会出现不同的版本,在多人开发的项目环境中
通常会对不同版本文件进行查看甚至回退去查看一下之前的一个的情况。(项目中突然有一个bug,这个bug
不清楚是这次版本提交的bug还是之前版本的我可能要往退一下退回版本之前看看有没有报错如果没有
那肯定这次提交的有bug如果没有回退就要一点一点的去找哪范围就会很大!所以就要用到回退)
查看版本具体命令:git log --pretty=oneline 这个命令可以查看具体的日志也可以看HEAD箭头指向的master就是当前版本
回退之前先输入这个命令查看所有版本信息
回退命令:
git reset --hard HEAD^ 回退一次 在加一个^就回退两次三次就以此类推如果要50次100次怎么办呢?
用这个命令
git reset --hard HEAD~写要回退的次数就可以了写比如50就写50 就可以了
但是要是想回退到具体版本又很多版本一个一个找不是太慢你就用这个命令git log --pretty=oneline查看所有版本的具体编码(b0679e31类似这个的编码标识)然后输入 git reset --hard+空格+标识码 就可以回到对应标识的版本两个命令配合使用一个查看一个根据查看结果来去回退版本 比如:git reset --hard b0679e31
但是你回退完之后 后悔了想再前进 也可以用这个 git reset --hard+空格+标识码 而此时记录也没有了重新打开了或者清空了没有标识码了怎么办?
通过命令git reflog 就可以查看所有记录包括之前 回退过的记录也有
然后再加上 git reset --hard+空格+标识码 就可以了


文件删除:
一:
查看本地仓库文件命令: git ls-files
当我们直接去操作磁盘文件手动点击删除但是你通过上面命令发现仓库中还是有存在已经手动删除的文件的
这时你是还可以通过:git checkout 加文件名    进行恢复自然磁盘中的文件也会删除
那么你如何也把git'仓库里面的文件也删除掉呢?
通过命令: git add +文件名 或者 git add . 指当前文件 
查看一下暂存区是否有 你要删除的文件前面跟了个deleted 并且是绿色 有就说明磁盘中已经被删除了
此时就可以通过  git commit -m ' 删除+文件名' 就可以了  
此时在此查看git ls-files命令就会发现仓库已经没有这个文件了 (上面每一步都要操作不让删不掉)
二:
如果显麻烦可以直接用命令:git rm 文件名 即可 
就可以删除磁盘中和仓库中的文件了
再通过git  ls-files查看确认就可以了


分支操作-本地操作:
在开发企业项目一般多人合作的项目不会直接在主干master上调试和操作而是会开发出新的分支在新的分支上进行调试啊开发啊当你的项目测出来没有问题的时候才会把你的分支项目的代码合并到主干master上面去
如果是新开的项目(master)的话是无所谓的 
如果说项目已经上线了已经有用户在访问了这时想添加新功能修复线上的bug的时候我不可能直接去主干上面去开发主干上面的项目是已经提供在线上的一个项目如果说真的要去添加新的功能这个功能有bug
导致项目挂掉了这时bug又搞了两三天用户早就另选app了
像这种情况就可以去拉一个分支 分支上面的任何操作都不会影响主干的 等我们的分支调试都没有任何问题了
就可以合并了直接发布上线就可以了

分支命令:
         git branch(查看所有分支)有*号标记的呢就是当前分支 后面蓝色括号也能看出
         git checkout -b 分支名 (创建分支并且切换到该分支) 
此时分支里面有什么内容?
主干里面有什么内容这个分支里面就有什么内容

      命令:     
         git checkout 分支名 (切换分支)
         git branch -m 旧分支名  新分支名字  (重命名修改分支名字)

合并分支:(切记一定记住先切回到主干)千万不能在分支上合并主干虽然不会报错但是有影响
         git merge 分支名(合并分支)
此时在去看主干就会发现主干上就有分支的操作的东西了
这个合并后的分支就没用了就需要删掉了
命令:git branch -d 分支名 (删除分支切记如果要删除分支不能在要删除的分支下面删除分支)
强制删除就是 git branch -D 分支名(如果你的分支和主干内容不一样就会不让你去删就需要用到这个命令)

分支操作-远程操作:
命令:
git branch -a(就是“查看所有”本地分支加上远程分支)
git push origin 分支名 (将需要分支“推送”到远程仓库当中并创建远程分支)
git push origin :分支名 (“删除”远程仓库分支)
git checkout -b 分支名  origin/远程分支名 (“拉取远程分支”拉取之前要先获取最新分
支的一个状态就要通过命令:git fetch
此时通过 git branch -a就可以看到要拉取远程分支了然后再用远程拉取的命令就可以拉取到了
并且在本地创建了远程分支并切换到该分支)


分支冲突问题-本地:
通俗理解就是提交的同一个文件同一行出现的内容不同如果是同一个
文件不同行是没用冲突的
如何解决?
这个需要去根据实际工作需求去解决
如果没有定死一个方案规定怎么去做就 可以,以主干为准 可以以分支为准 也可以把主干内容和分支内容合并起来看具体工作
需求来定
比如:以主干为准进行提交 分支和主干的一个文件同一行发生冲突就以主干为主进修改后重新进行提交就可以了此时提交的时候
后面的括号里面就会出现(master/MERFING)处于合并的一个状态
再次提交 先add 然后commit提交 提交后就会恢复就解决了冲突当然这就是以主干内容为准
这个具体以实际情况来定
还可以通过命令来看分支冲突的情况:
以前不是通过 git log --pretty=oneline查看版本具体命令信息?
这个命令:git log  --graph   --pretty=oneline 能够以图标的形式通过最左边的星号和红绿竖杠("|")
来看有没有分支冲突和合并情况

多人协同操作冲突:
就是在多人开发当中A修改分支内容并进行提交操作此时B在分支提交的时候
也去修改了这个文件的内容并且已经提交到了远程仓库中仓库内容已经发生了变化 A在合并分支的时候发现
内容已经被修改发生了冲突的情况两个人同时改了一个文件在文件合并的时候发生了冲突
提交的同一个文件同一行出现的内容不同
上面本地的是自己一个人去做的知道自己主干和分支怎么写的可以去修改在合并解决的
那么多人从远程拉取合并的时候发生冲突你就不知道它是怎么写的没办法控制?
如何避免多人冲突呢?
尽可能在发生冲突之前先去拉取最新的代码 git pull这边就会提示有冲突没有就直接推送 
这样在去推送就能避免大部分情况下的一个冲突
有冲突就去解决根据实际工作情况来解决 可以合并解决可以以他的为主或者以自己看情况
比如合并:我就把合并的那一行挪一下就解决了问题在推送就可以了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值