美文网首页
使用GitLib

使用GitLib

作者: 牵着蜗牛散步Zz | 来源:发表于2017-05-09 15:27 被阅读0次

    git 工作区域 git的工作区域.png

    本地开发完之后通过add命令会把本地工作区的代码添加到暂存区(stage),然后commit之后会将stage中的代码提交到本地分支的版本库中,之后执行push会推到远程分支中。

    分支管理策略

    master应该是非常稳定的,也就是近用来发布的新版本,平时不在上面开发,所有的开发应该在dev分支上,测试验收完成,再把dev合并到master发布版本。

    Bug分支

    有时候在开发过程中需要紧急修复一个bug,想要pull最新的代码,但是又不想将正在开发到一半的代码提交,那么可以先暂存开发的代码,使其返回到自己上一个commit,改完bug之后再stash pop,继续原来的工作。
    git stash 暂存当前代码
    git stash pop 取出暂存的代码
    git stash list 查看现有的储藏

    feature分支(功能分支)

    如果有多人协作的话,需要开出多个feature分支,各自开发完成之后再合并。

    打开gitlib然后新建一个项目取好名字,然后按照底下给的提示在cmd中create 仓库。注意在更新项目时要先pull,然后提交更新然后push
    git提交文件的顺序:

    git add . // add全部文件
    git add a b c d e // 文件之间添加空格表示依次添加文件
    git commit -m "" 提交代码到本地
    git pull 拉去代码
    git push push代码
    git status 查看更改的文件

    拉取远程分支并创建本地分支

    git checkout -b 本地分支名x origin/远程分支名x(使用该方式会在本地新建分支x,并自动切换到该本地分支x。)
    git fetch origin 远程分支名x:本地分支名x(使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checkout。)

    版本回退

    git 将本地的状态回退到和远程一样
    git reset --hard origin/master

    查看分支

    查看本地分支:git branch 查看本地以及远程分支:git branch -a

    切换分支

    切换分支:git checkout "分支名"

    创建分支

    从已有的分支创建新分支(如从master分支),创建一个dev分支:
    git checkout -b dev,如果需要从某一个分支切出另一个分支,需要先切换到该分支下,然后在该分支中执行该命令,则可以从该分支中创建出另一个分支。

    远程与本地关联

    远程没有关联local_branch分支,并且本地已经切换到remote_branch分支,要关连本地和远程分支:
    git push origin local_branch:remote_branch
    切换分支之前需要将当前分支修改的内容全部提交完,如果未提交完成则无法提交。

    标绿色表示当前分支


    屏幕快照 2017-12-12 上午9.09.39.png

    在分支下pull或者push
    git push origin develop (develop为分支名)
    或者git push origin develop(本地分支):
    git pull origin develop(远程分支):devleop(本地分支)

    下面的命令执行前提是在gitLab上有了地址
    Git global setup
    git config --global user.name "魏昌洲"
    git config --global user.email "wcz345583696@163.com"

    Create a new repository
    git clone http://10.116.15.196:9999/wcz123/TestProject.git
    cd TestProject
    touch README.md
    git add README.md
    git commit -m "add README"
    git push -u origin master

    Existing folder
    cd existing_folder
    git init
    git remote add origin http://10.116.15.196:9999/wcz123/TestProject.git
    git add .
    git commit -m "Initial commit"
    git push -u origin master

    Existing Git repository
    cd existing_repo
    git remote add origin http://10.116.15.196:9999/wcz123/TestProject.git
    git push -u origin --all
    git push -u origin --tags

    如何将本地的master代码关联到分支上:直接从分支上拉取代码。
    例如直接在master上拉取下来的代码上执行git pull origin develop。

    关于.gitignore

    如果项目中没有.gitignore文件,可以手动创建一个。
    有时候.gitignore不起作用,原因就是因为.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
    git rm -r --cached .
    git add .
    git commit -m “gitupdate gitignore file”
    有时候执行这样的操作之后,在add时有的文件会的追踪会丢失,需要进入该文件目录中将.git文件删除之后再add。
    如果要在.gitignore中添加某一个需要忽略的文件可以针对该文件做忽略 eg:

    屏幕快照 2018-01-24 下午5.51.23.png
    如果.gitignore写的有问题,需要找出来是哪里写错了,可以用git check-ignore命令检查。

    如何在新建项目时拉取到develop上的代码:
    先git clone 代码,这时候本地代码是master上的,然后执行git checkout -b 本地分支名x origin/远程分支名x 拉取分支代码并在本地创建分支。可参考http://blog.csdn.net/tterminator/article/details/52225720

    git diff

    git diff 文件 查看文件修改,查看文件修改了哪些地方,cd到该文件下,然后执行该命令。图片中红色的地方是没修改之前的,绿色的是修改了的。


    屏幕快照 2018-01-24 下午5.17.45.png

    git fetch

    git fetch 更新远程分支,比如其他人创建了一个远程分支,你这边没更新到,可以用git fetch命令更新一下。
    git fetch <远程主机名>某个远程主机的更新,全部取回本地。
    git fetch <远程主机名><分支名>取回所有分支(branch)的更新。
    git fetch -p 远程有删除的分支,通过该命令可以更新

    git merge

    git merge命令用于合并指定分支到当前分支。例如将dev分支合并到master分支上:
    1、切换到master分支下
    2、执行git merge dev命令将dev分支合并到master分支。
    3、将远程的分支合并到本地:git merge origin/dev(远程的分支)

    4、git merge dev1 合并本地分支dev1到当前分支

    删除分支

    git push origin :dev (origin后面有空格) 删除远程分支。或者git push origin --delete 分支名
    git branch -d <BranchName> 在本地删除远程已经删除的分支。
    git branch -D <BranchName> 删除本地分支。
    在删除本地分支之前,当前分支不能为该分支。

    git log

    git log --graph --pretty=oneline --abbrev-commit
    查看分支的合并情况,包括分支合并图、一行显示、提交校验码缩略显示。

    版本回退

    git reset --hard HEAD^
    回退到上一个版本。
    同理,回退到上上个版本为:HEAD^ ^, 回退到上100个版本为:HEAD-100,貌似波浪号 ~ 也可以,变成倒数第101个。
    git checkout . 类似git reset的作用,放弃对文件的修改

    git tag

    版本的发布会一直持续,如果上一个版本出了问题,我们需要版本追溯时可以通过git tag直接定位到出问题的版本。通过这个命令可以避免不断的开出分支来保留上一个版本。
    git tag 查看目前有哪些tag。
    git show tag-name 查看某一个tag下的具体信息。
    git checkout tag-name 将工程定位到相应的tag处。
    git tag -a v1.0.0 -m “1.0.0版本” 为当前版本添加附注。
    git push origin v1.0.0单独提交本次tag。
    git push --tags 提交所有tags。
    git tag -d v1.0.0 删除标签。
    git push origin --delete tag <tagname> 删除远端tag。

    在gitlab下,一般只有项目创建者才有权限合并和提交代码到master上,如果要给开发者提供开发master分支的权限,需要在项目面板Settings ->Repository中将项目的开发权限放开。
    [图片上传中...(屏幕快照 2018-02-24 上午10.46.48.png-dc3cbf-1519440588579-0)]

    查看历史提交明细:

    1、gitLab -> Repository -> Commits然后查看提交过的文件的详细更改


    屏幕快照 2018-05-02 下午1.12.08.png

    2、或者可以cd到某一个文件下,通过git log filename来看这个文件以往的提价记录,每个提交记录对应着一个hash值,然后执行git show hashValue来查看具体的内容。

    git reflog 查看各分支的提交记录

    这个命令记录了所有的提交记录,HEAD前面的值是关键,如果代码合并或者出现了别的错误,需要恢复到某一个提交的点,可以先用这个命令查看所有的提交记录,找到需要的HEAD的值,然后执行git reset 28d447f –hard命令,中间的28d447f替换成自己查找出来的值。 屏幕快照 2018-05-09 下午3.41.22.png

    git命令行记住用户名和密码

    git config --global credential.helper store
    先输入该命令,然后再执行其他git命令时输入用户名和密码就会记住该用户名和密码了。

    记录一次遇到的git问题:

    不要在tag上写代码,tag不是分支,记录的只是代码某一个状态下的所有数据,在tag上写的代码只能进行本地提交,没有办法push。如果不小心在tag上写了代码,需要做的是先把代码提交到本地,然后切换到打tag的分支,这时候会出现如下提示: 屏幕快照 2018-05-09 下午3.57.19.png 这句话的意思是需要你切一个新的分支,然后分支后面带的一长串值也要加上,这样才能将写在tag上的代码移动到新

    强制将本地推到远程的分支
    如果本地的版本是对的,想用本地的分支替换掉远程的分支,可以先切到该本地分支,然后使用命令 :git push -u origin master -f ,其中“master”是目标远程分支。

    远程的git地址发生变更怎么修改?
    在项目文件夹中找到.git文件,然后打开里面的config文件,然后修改url参数。

    附上廖雪峰的git讲解:
    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

    相关文章

      网友评论

          本文标题:使用GitLib

          本文链接:https://www.haomeiwen.com/subject/sbtitxtx.html