您的位置:首页 > 运维架构 > Shell

使用Git Bash管理项目文件

2017-11-17 19:10 218 查看

1.创建项目版本库

利用 cd E:\github 定位到版本库文件夹



在git中添加用户名和对用的邮件信息,使得记录每一个添加修改的人



查看用户名和密码



将文件夹变为对应的git版本库,并生成相应的git管理文件



2.在版本库中添加文件

基本流程图:



使用$ touch 1.txt 命令创建文件1.txt,文件内容为11111,并用$ git status查看版本库的状态



此时1.txt文件为Untracked状态,表明还有没有放入版本库,此时需要使用$ git add 1.txt命令



如果想要一次性添加文件夹所有文件到版本库,使用 $git add . 即可

3.文件的修改和记录

对1.txt的内容进行修改,然后查看状态,发现修改还没被add到stage状态



使用$ git diff查看变化的内容



把这次修改add 进入staged状态, 然后再commit这次的修改:( $git add 1.txt $git commit -m "修改1.txt"  )



此时工作区没有要修改的文件,工作区很干净



查看记录log,会看到修改人的名字、邮箱和时间,还有commit的ID  ($ git log)





3.回到文件之前的状态

回到add之前 -s是status的简写,表示简写输出文件状态



回到某一个commit之前的状态,针对1.txt,所有的commit如下:(--oneline表示以一行输出)



每个 commit 都有自己的 id 数字号, HEAD 是一个指针, 指引当前的状态是在哪个 commit.  我们如果要回到过去, 就是让 HEAD 回到过去并 reset 此时的 HEAD 到过去的位置.

回到change 2之后的状态为例:



再次回到change 3之后:

查看 $ git reflog 里面最近做的所有 HEAD 的改动, 并选择想要挽救的 commit id:



使用checkout使得1.txt文件回到change 2之后的状态,但是HEAD指针没有变,其他文件也不会变,只是1.txt自身变到change 2之后的状态





4.将一个分支中的修改推送到另一分支

新建分支:$ git checkout -b de b是build

展示分支:$git branch



此时版本库中的修改发生在新分支de,原master分支不受影响

需要先转换到master分支:$git checkout master

然后将de分支中的改变合并:$git merge --no-ff -m "merge into"  de  

如果直接 git merge dev, git 会采用默认的 Fast forward 格式进行 merge, 这样 merge 的这次操作不会有 commit 信息. log 中也不会有分支的图案. 我们可以采取 --no-ff 这种方式保留 merge 的 commit 信息.



删除分支de:

首先移动到另一分支master,

使用命令: $ git branch -d de d是delete的意思

解决merge冲突

在dev和master分支中,都存在1.txt

目前在dev分支中,修改文件1.txt并提交更改



移动到master分支中,修改1.txt并提交更改



将dev的修改merge到master分支,出现冲突,git不知道如何处理



在1.txt中,出现了如下提示信息

123456

<<<<<<< HEAD

editor in master

=======

editor in dev

>>>>>>> dev

解决:

只需要手动确认1.txt的内容,然后提交修改



用stash存放临时修改

当我们正在修改文件时,需要中途暂停,可以使用stash保存临时修改



又要开始时,取出修改继续工作

查看stash的缓存:$ git stash list

取出修改:$ git stash pop

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐