zoukankan      html  css  js  c++  java
  • git

    参考文档        git基本使用   点击->git教程<--   git 常用命令参考

    • 简单了解Git 
      有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。
    • 本地版本控制系统

    许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别。 这么做唯一的好处就是简单,但是特别容易犯错。 有时候会混淆所在的工作目录,一不小心会写错文件或者覆盖意想外的文件。

    • 集中化版本控制系统
      可以让在不同系统上的开发者协同工作,有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。 而管理员也可以轻松掌控每个开发者的权限,并且管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。缺点是中央服务器的单点故障。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 如果中心数据库所在的磁盘发生损坏,又没有做恰当备份,毫无疑问你将丢失所有数据。
    • 分布式版本控制系统
      客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。 这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。 因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
    1. 直接记录快照,而非差异比较
    2. 近乎所有操作都是本地执行
    3. Git 保证完整性

    Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

    基本的 Git 工作流程如下:

    1. 在工作目录中修改文件。

    2. 暂存文件,将文件的快照放入暂存区域。

    3. 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

    如果 Git 目录中保存着的特定版本文件,就属于已提交状态。 如果作了修改并已放入暂存区域,就属于已暂存状态。 如果自上次取出后,作了修改但还没有放到暂存区域,就是已修改状态。

    Git常用命令:

    1. git init     初始化
    2. git status      查看文件状态
    3. git  add .        追踪文件,把文件添加到暂存区
    4. git  commit -m '注释'        把暂存区的文件提交到本地的版本库中
    5. git remote add origin  https://github.com/neglect/test.git         建立本地仓库和远程仓库的连接,origin是远程仓库的别名,远程仓库的地址是 https://github.com/neglect/test.git 在GitHub上创建的仓库。
    6. git  push -u origin master          把本地版本库中的文件推送到服务器版本库中,-u 是本地分支和远程分支关联(如果远程仓库没有这个分支则会创建)(一个分支关联一次就不需要再加-u) ,master 是版本库的一个分支。版本库理解成一个目录的话,那么分支可以认为是该目录下的一个子目录。
    7. ssh-keygen  -t   rsa  -c  "github的邮箱"              执行此命令前需要先查看是否已经有ssh密钥 cd  ~/.sh(Linux) cd  C:Usersfb (Windows)查看是否有.ssh目录有则备份后删除(fb是用户名,如果是管理员则是administrator)执行命令后,会生成公钥和私钥,id_rsa.pub 文件里的字符串就是公钥。

      在GitHub里创建文件如上图,然后把字符串复制进去即可。这样就不需要每次  git  push的时候输入用户名和密码了。

    8. git config --global user.name "yourname"
      git config --global user.email "youremail"
    9. git log    查看项目的日志    git  log <file>      查看指定文件的日志    git  log .  查看当前目录的日志
    10. git log -p -1      #查看最近1次的文件变更  -2 就是倒数第二次的
    11. git  reset  --hard  ^              回退到上一个版本    git reset --hard  ^^   回退到上上个版本,以此类推
    12. git  reset  --hard  索引ID               即可回退到指定版本,索引ID是在  git  log 的时候会显示的。
    13. git  branch           查看有哪些分支
    14. git  branch  abc          就创建了一个abc分支
    15. git  checkout  abc      切换到abc分支
    16. git merge origin/abc           如果你当前是在master分支,输入这条命令,就会把abc分支合并到master分支。
    17. git fetch             查看服务器版本库哪些分支更新了
    18. git  diff                查看合并后的代码是否有冲突
    19. git  remote  -v     查看你要指向的远程repository
    20. git add 撤销文件: git reset HEAD 撤销上一次add的全部文件,  git reset HEAD  XXX/XXX/XXX.java   撤销指定的上一次添加的文件
    21. git add 相关参数

      git add .                               提交被修改的和新建的文件,但不包括被删除的文件                            

      git add -u     --update          update tracked files    更新所有改变的文件,即提交所有变化的文件

      git add -A    --all                  add changes from all tracked and untracked files   提交已被修改和已被删除文件,但是不包括新的文件

    22. git clone -b 分支   地址        clone远程仓库指定分支的内容
    23. git  remote  -v                    查看当前项目的远程地址,是否正确
    24. git  remote  set-url  origin  远程仓库地址                       修改origin对应的远程仓库地址
    25. git  branch                        查看本地分支                   git   branch   -a           查看远程所有分支列表 (删除的也还会显示出来)  (绿色表示当前项目所在分支,红色表示远程分支列表)
    26. git show commit_id       查看commit内容 
    27. git  在Windows、Linux都可以使用。不要在线上服务器使用push, 线上服务器只使用pull , 把代码拉倒服务器上即可。安全。
    28. 原则上是不同目的的修改是放在不同的 commit 里的,修改一个功能做一次commit,如果针对不同功能进行commit,分多次提交,以后版本回退方便,修改不同功能一次性提交以后可能也会有未知麻烦。注释尽可能清晰,描述清楚。  
    29. 可参考的文章:https://blog.csdn.net/baimafujinji/article/details/79597654
    30.  .gitignore      https://www.jianshu.com/p/74bd0ceb6182
  • 相关阅读:
    03_ if 练习 _ little2big
    uva 11275 3D Triangles
    uva 12296 Pieces and Discs
    uvalive 3218 Find the Border
    uvalive 2797 Monster Trap
    uvalive 4992 Jungle Outpost
    uva 2218 Triathlon
    uvalive 3890 Most Distant Point from the Sea
    uvalive 4728 Squares
    uva 10256 The Great Divide
  • 原文地址:https://www.cnblogs.com/bneglect/p/10551572.html
Copyright © 2011-2022 走看看