git 学习备忘

  以前一直用的svn,最近开始学习使用git来进行版本控制,放一些git指令备忘。

  在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

  基本的 Git 工作流程如下:

  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。

  第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

  $ git config --global user.name "your name" $ git config --global user.email "your email"  
  要检查已有的配置信息,可以使用 git config --list 命令  

  要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行  git init,初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中.  

  如果对当前目录要纳入控制的话,使用 git add 文件名/目录命令告诉git对这些文件进行版本追踪,然后使用 git commit - m "修改备注" 进行提交,尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。Git 提供了一个跳过使用暂存区域的方式,只要在提交的时候,给git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

  克隆仓库的命令格式为 git clone [url] 如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字

  要确定哪些文件当前处于什么状态,可以用 git status 命令

  实际上 git status 的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff 命令,要查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff ,若要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令,(Git 1.6.1 及更高版本还允许使用git diff --staged,效果是相同的,但更好记些。)

  如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “Changes not staged for commit” 部分(也就是未暂存清单)看到,然后再运行 git rm 记录此次移除文件的操作,最后提交的时候,该文件就不再纳入版本管理了。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母),以防误删除文件后丢失修改的内容。我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中 ,用--cached 选项即可 。

  在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看。我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新。

  取消工作目录中已修改的文件,可以使用 git reset HEAD <file>... 的方式取消暂存。

  要查看当前配置有哪些远程仓库,可以用 git remote 命令,它会列出每个远程库的简短名字,也可以加上 -v 选项(译注:此为 --verbose 的简写,取首字母),显示对应的克隆地址。

  要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行 git remote add [shortname] [url]

  可以用 git fetch [remote-name]从远程仓库抓取数据到本地,可以使用 git pull 命令自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支

  git push [remote-name] [branch-name] 可以将本地仓库中的数据推送到远程仓库.

  可以通过命令 git remote show [remote-name] 查看某个远程仓库的详细信息

  在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称

  碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行git remote rm [远程库简称]命令 .

  可以使用git branch [分支名] 来新建分支,使用 git checkout [分支名] 来进行分支切换,要新建并切换到该分支,运行 git checkout  -b [分支名],使用 git branch 的 -d 选项执行删除分支操作

  可以用 用 git merge [要合并的分支名]命令来进行合并,也可以使用git rebase进行分支合并

  git branch 命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单,若要查看各个分支最后一个提交对象的信息,运行 git branch -v,要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用 --merge 和 --no-merged 选项(Git 1.5.6 以上版本)。

  

  

  

 

 

  

  

  

  

  

 

posted @ 2017-03-29 11:05  萝卜不抽烟  阅读(216)  评论(0编辑  收藏  举报