Git学习笔记:基础篇

git能够说是全部开发者出开发语言以外的最基本的基本功了,熟悉git能够方便的进行代码版本控制,以及与其余开发者进行合做开发。本文内容是我以往学习git时作的笔记,主要是关于git最基本的操做,但 只要熟练掌握本篇内容,能够说采用git进行开发基本没有问题了。git

1. git init :要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录运行此命令。编程

2. git add + 文件名:将某个文件归入到版本控制中。注:文件名能够用通配符,另外也能够用“git add all”或者“git add -a”来一次性将全部文件添加到版本控制中。服务器

3. git clone [url] :将远程仓库克隆到本地,其中url为远程仓库连接地址。编辑器

4. git status :查看git仓库中的文件出于哪种状态。注:Untracked files是指未被git仓库追踪的文件;new file是指已被跟踪,并处于暂存状态的文件;modified指的是已跟踪文件的内容发生了变化,但尚未放到暂存区。学习

5. 配置忽略文件:有些文件无需归入 Git 的管理,也不但愿它们总出如今未跟踪文件列表,那么能够在git项目文件中新建一个名为“.gitignore”的文件,在这个文件中配置须要忽略的文件。文件 .gitignore 的格式规范以下:fetch

  • 全部空行或者以注释符号 # 开头的行都会被 Git 忽略。
  • 可使用标准的 glob 模式匹配。
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式之外的文件或目录,能够在模式前加上惊叹号(!)取反。

例如:ui

# 此为注释 – 将被 Git 忽略 *.a # 忽略全部 .a 结尾的文件  !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO  build/ # 忽略 build/ 目录下的全部文件  doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

6. git diff :查看还没有暂存的文件更新了哪些部分。git diff –cached则是查看已经暂存起来的文件和上次提交时的快照之间的差别。url

7. git commit :提交更新。当git commit不加其余参数时,会打开文本编辑器来输入描述信息。也可使用git commit -m "描述信息"的方式直接在命令中添加描述信息。给 git commit 加上 -a 选项,Git 就会自动把全部已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。spa

 

8. git rm + "文件名" : 从 Git 中移除某个文件(磁盘目录中也会删除),就必需要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),而后提交。若是只是简单地从工做目录中手工删除文件,git追踪中仍会显示。若是删除以前修改过而且已经放到暂存区域的话,则必需要用强制删除选项 -f强制移除。版本控制

9. git rm --cached + “文件名” :把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然但愿保留在当前工做目录中,以便稍后在 .gitignore 文件中补上,用 –cached 选项便可。运行这一命令以后,该文件会从新编程untraced的状态。

10. git mv “旧文件名" ”新文件名" : 重命名文件,或者说移动文件。

11. git log:查看提交历史记录。

git log -p -2 :-p参数是用来显示每次提交的内容差别,-2表示仅显示最近的两次提交。

12. git commit --amend:撤销提交操做。例如:首先建立一个1.txt文件,并保存到git。

touch 1.txt

git add 1.txt git commit -m "新建文件1.txt"

这时候发现,忘了还要新建一个2.txt文件,这时候后悔了,想要撤销刚才的提交,新建号两个文件,一块儿add 而后commit。能够这么作:

touch 2.txt

git add 2.txt git commit --amend -m "新建两个文件1.txt和2.txt"

这以后,上一一次的commit就回做废,使用git log查看记录就回发现,提示信息以后"新建两个文件1.txt和2.txt"这一个,而"新建文件1.txt"已经被覆盖(删除)了。

13. git reset HEAD 文件名:取消暂存(add)。当对多个文件同时add以后,发现某个文件不须要add,那么就可使用这一命令。

14.git checkout -- 文件名 :撤销以前的全部操做,恢复到最近的一次commit。注意,该命令必须是修改以后还未进行add之列的操做,不然就回不去了。该命令你一旦执行,所作修改都会消失,回到最近的commit。

15. git remote 查看远程仓库。该命令会列出全部的远程仓库,若是肯定配置有远程仓库,至少应该能看到 origin - 这是 Git 给你克隆的仓库服务器的默认名字(注:origin是默认的远程仓库名称,master是默认的分支)。进一步,还能够指定参数-v:

git remote -v 指定选项 -v,会显示须要读写远程仓库使用的 Git 保存的简写与其对应的 URL。

git remote show [remote-name] 显示远程仓库的详细信息(真的很详细)。

16. git remote add <shortname> <url> 添加远程服务器。能够认为shortname是给远程仓库取的一个别名,也就是说上面说的remote-name,下次使用这个远程仓库时,就不须要经过url,使用这个别名就行了。

17. git fetch [remote-name] [branch-name] 从远程仓库中拉取。这个命令会访问远程仓库,从中拉取全部你尚未的数据。 执行完成后,你将会拥有那个远程仓库中全部分支的引用,能够随时合并或查看。 必须注意 git fetch 命令会将数据拉取到你的本地仓库 - 它并不会自动合并或修改你当前的工做。 当准备好时你必须手动将其合并入你的工做。

18.git pull [remote-name] [branch-name] 从最初克隆的服务器上抓取数据并自动尝试合并到当前所在的分支。

19. git push [remote-name] [branch-name] 将本地仓库推送到远程仓库remote-name上的branch-name上。只有当你有所克隆服务器的写入权限,而且以前没有人推送过期,这条命令才能生效。 当你和其余人在同一时间克隆,他们先推送到上游而后你再推送到上游,你的推送就会毫无疑问地被拒绝。 你必须先将他们的工做拉取下来并将其合并进你的工做后才能推送。

20. git remote rename old-name new-name 给远程仓库重命名

21. git remote rm + 仓库名 移除远程仓库

相关文章
相关标签/搜索