美文网首页
git使用总结

git使用总结

作者: 卓三阳 | 来源:发表于2018-04-24 11:49 被阅读51次

    要使用Git,第一步当然是安装Git了。安装完成后,你就可以开始git的使用啦。

    (1)创建版本库

    版本库又名仓库,英文名repository,你可以简单理解成一个被git管理起来的目录。

    创建版本库很简单,新建一个目录,初始化就可以了。

     mkdir learngit
     cd learngit
     git init 
    

    git - 如何从项目中删除git跟踪?

    rm -rf .git
    

    (2)把文件(修改)添加到版本库

    我们可以在learngit目录下新建一个readme.txt文件,然后你可以做一些修改。

    • 第一步,用命令git add告诉Git,把文件添加到仓库:
      $ git add readme.txt
      命令git add <file>,注意,可反复多次使用,添加多个文件;
      git add . 将所有修改添加到暂存区
    • 第二步,用命令git commit告诉Git,把文件提交到仓库:-m后面输入的是本次提交的说明
      $ git commit -m "add an apple"

    (3)版本回退之回到过去

    我们再次修改readme.txt文件,然后提交。这里我们介绍两个git命令
    git log命令显示当前版本从最近到最远的提交日志
    git reflog用来记录你的每一次命令

    • 命令: git log // 显示所有提交记录.


      log1.png
    • 在所有提交记录中,选择需要回退到的commit ID,复制.
    • 命令: git reset --hard A // A是commit ID.完成回滚操作.
    • 命令: git log // 显示新的提交记录.
    log2.png
    (4)版本回退之回到未来

    现在,你回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?

    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本


      reflog.png
    • 然后再使用git reset --hard B,完成回到未来(相对于当前版本而言)的版本

    完成上面的步骤后,我们需要将本地仓库与远程仓库建立联系


    (5)添加远程仓库

    这种情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作。

    • 首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库(名字与本地git仓库相同)

    • 将本地仓库与之关联
      git remote add origin git@github.com:zhuozenghua/learngit.git

    git@github.com:zhuozenghua/learngit.git要你自己项目的地址

    • 本地仓库的内容推送到GitHub仓库
      git push -u origin master
      我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
      git push origin master or git push

    (6)从远程仓库克隆

    上面是先有本地库,后有远程库的时候,如何关联远程库。
    现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。

    • 首先,登陆GitHub,创建一个新的仓库

    • 远程库准备好后,下一步是用命令git clone克隆一个本地库

    • 然后我们就可以修改我们的项目,并push到远程仓库
      vi readme.txt
      git status //工作区的状态
      git add readme.txt
      git commit -m 'message'
      git push //提交到远程仓库
      输入github用户名和密码
      git status //再次工作区的状态


    (7)解决git冲突

    解决git冲突,假设同一个F文件,被操作者A和B都修改了.

    解决思路:

    1. A先提交文件F,正常提交,无冲突问题
    2. B提交文件F时,报冲突.(git push),这是需要合并远程的变更
    3. B需要执行: git pull 操作,会自动将服务器端最新文件合并到本地F.(该文件F中,同时保留2个不同的修改点)
    4. B执行: git status 操作,显示冲突文件信息
    5. B执行: git diff 操作,显示文件F中的冲突点
    6. B执行: 用vi 打开 文件F, 查看到冲突处标记 <<<<<XXXXXXXYYYYYY=======>>>>>,手动删减,保留需要确认的部分
    7. 到这里,B本机的文件F已经在同步服务器端最新的F基础上,做了修改,变成"更加新的文件F"(比服务器端还新).
    8. 这样,再提交文件F.就不存在冲突问题.剩下的操作,就是正常的提交步骤
    9. git add XXXX
    10. git commit "xxxxyww"
    11. git push
    12. 输入账号名,密码
    13. 这样,就将"更加新的文件F"上传到服务器端.解决冲突问题
    14. 这个冲突解决问题,实际上和其他版本管理工具,没有啥本质区别
    15. 切换至A用户,再pull才能保持与远程一致

    (8)分支管理

    上面一切尝试我们都是基于master分支进行的。我们这里讲一下分支push过程中关联的问题,详细的分支操作参考文章后面的链接。

    这里需要注意的本地git仓库中分支与github远程仓库中的分支没有一一对应的关系。

    因此我们用git push命令的时候,必须先关联远程仓库的分支。

    一种情况是远程没有该分支
    新建分支用于开发:
    git branch develop master //新建一个叫develop的分支,基于master分支
    切换到这个分支:
    git checkout develop
    合并上面两步:git checkout -b develop master
    现在可以在这个develop分支上做一些改动,并且提交。
    然后设置一个远程仓库分支与之关联,git push -u origin命令会提示我们用下面的命令来完成
    git push --set-upstream origin develop
    以后我们就可以用git push origin提交了。

    上面在远程仓库上新建分支我们也可以用:git push -u origin develop来实现
    

    另一种情况是远程已经有你想要的分支
    git clone+github地址的方法,项目默认只有master分支。git branch也只有master
    要看所有的分支:git branch -a或者是git branch -r

    这时候要新建一个分支,叫做dev,基于远程的dev分支:git branch dev origin/dev。我们也可以在创建是切换分支:git checkout -b dev origin/dev

    合并分支
      git checkout master
      先转到主分支
      git merge --no-ff develop
      然后把develop分支merge过来
    

    (9)建立里程碑

    里程碑 = 稳定版本号.
    里程碑的含义是: 一个阶段比较稳定的版本,正式提交发布出去.提供zip下载.

    操作步骤:

    1. 在github网站上.进入项目首页.
    2. 横栏按钮(commits, branches, release等),找到release按钮.
    3. 找到按钮:draft a new release,点击进入下一页面.
    4. 填入版本号,以及说明信息.
    5. 完成后,点击publish release,将软件发布出去.
    6. 这样就完成里程碑建立,同时会自动生成zip下载链接.

    (10)删除github上的文件夹,而不删除本地文件

    git rm --cached -r admin
    git commit -m "delete admin directory"
    git push

    其他

    Git版本控制:Github的使用之 多人协作及参与项目

    参考:
    廖雪峰git教程

    相关文章

      网友评论

          本文标题:git使用总结

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