Git简易操作教程和一些技巧

Table of Contents

这是一篇在windows平台使用git上传本地代码并同步到github远程仓库的简易教程。 环境:windows7 32位,Git-1.9.5-preview20150319.exe

创建github远程仓库

先注册github账号,登录后,点击右上角头像旁边的+号下拉菜单按钮,选择New repository,然后Repository name下方就是仓库的名字,我们这里输入test,然后下方的Public保持勾选,然后点击勾选下面的Initialize this repository with a README,如果你喜欢,可以点击Add a license:来增加一个许可证,我们这里选择GNU Lesser General Public License v3.0,最后点击绿底白字的Creating repository完成创建。

创建后页面自动跳转到你的仓库地址,比如我的就是https://github.com/jerry011235/test,然后复制HTTPS右侧的网址:

https://github.com/jerry011235/test.git

本地克隆

在D盘根目录或一个你喜欢的文件夹(推荐路径全部为英文),右键选择Git Bash,输入:

git clone https://github.com/jerry011235/test.git

回车后,会发现D盘根目录多了一个test文件夹,里面和github网页上的文件是一样的(包括一个LICENSE文件和一个README.md文件),最重要的是多了一个.git隐藏文件夹。这个test文件夹就是你的本地工作目录。 然后关闭gitbash窗口。

然后把要上传到github的文件粘贴到test文件夹里(或者新建几个文件夹和文件)。然后进入D:\test文件夹,右键选择Git Bash,会发现变成master了,即/D/test (master),然后依次输入:

git add -A      
//它会把我们的新文件和修改的文件全部提交到stage区域(当然不包括本地删除的文件)
git commit -m '我的第一个提交'
// 提交更新
git push origin master
// push到远端master上

注意:这三个命令是连续动作,必须依次执行,才能成功。 如果要把git addgit commit以及git push合并成一步命令,可以使用下面的代码:

git add -A && git commit -m '你的注释' && git push origin master

等命令运行完后,刷新https://github.com/jerry011235/test,会发现本地的文件全部都上传到github远程仓库上了。

本地目录和远程仓库进行文件同步

然后我们进行文件和文件夹的修改操作,就是看看修改后的本地目录能否和github同步(目录里的文件和文件夹一模一样)。 我们先在https://josetomastocino.github.io/mindmapit/上画一个文件和文件夹修改操作的思维导图。 文件和文件夹的操作

小技巧:搜索(online) mindmap (github.io)会出来更多的在线思维导图(括号里的单词可加可不加):

接着我们就开始在工作目录D:\test文件夹里面进行增加和删除文件和文件夹、修改文件内容和文件名等操作。 经过测试,这行代码完全可以把本地目录的文件同步到github远程仓库。

git add -A && git commit -m '你的注释' && git push origin master

但注意:本地新建一个空文件夹并不会被同步到github远程仓库上。

查看文件版本的历史纪录

你可以在https://github.com/jerry011235/test页面中点击commits链接来查看提交更新的历史纪录, 然后点击<>还可以查看当时的文件,一直点击打开文件后,对着Raw右键,选择链接另存为还可以下载该版本的文件。 github下载文件 以后就可以上传一些word文档来进行版本控制,而因为github地址是公开的,任何人打开就能看到,所以就上传一些可以公开的文档。 下面这样的日子就一去不复返了:) 以前的版本控制

Gitbash小技巧

快捷键

  1. 按方向键(上键)可以显示上一条命令,Ctrl + p也有同样效果。
  2. Ctrl + c可以终止命令。

更多快捷键可以参考附录或搜索Bash Shell 快捷键来得到更多信息。

“Git add -A” and “Git add .”的区别

上述代码为什么要用git add -A而不用git add .,因为

  • git add -A :stages All
  • git add . :stages new and modified, without deleted
  • git add -u :stages modified and deleted, without new
Git add操作对应的提交操作
git add -Astages All
git add .stages new and modified, without deleted
git add -ustages modified and deleted, without new
Git Version 1.X:
Git Version 1.X
Git Version 2.X:
Git Version 2.X

来自:http://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add

附录:Bash Shell 快捷键

Bash Shell 快捷键(转载自:天晴如许的博客

【CTRL 键】 Ctrl + a – Jump to the start of the line Ctrl + b – Move back a char Ctrl + c – Terminate the command //用的最多了吧? Ctrl + d – Delete from under the cursor Ctrl + e – Jump to the end of the line Ctrl + f – Move forward a char Ctrl + k – Delete to EOL Ctrl + l – Clear the screen //清屏,类似 clear 命令 Ctrl + r – Search the history backwards //查找历史命令 Ctrl + R – Search the history backwards with multi occurrence Ctrl + u – Delete backward from cursor // 密码输入错误的时候比较有用 Ctrl + xx – Move between EOL and current cursor position Ctrl + x @ – Show possible hostname completions Ctrl + z – Suspend/ Stop the command

【补充:】 Ctrl + h – 删除当前字符 Ctrl + w – 删除最后输入的单词

【ALT 键】 平时很少用。有些和远程登陆工具冲突。 Alt + < - Move to the first line in the history Alt + > – Move to the last line in the history Alt + ? – Show current completion list Alt + * – Insert all possible completions Alt + / – Attempt to complete filename Alt + . – Yank last argument to previous command Alt + b – Move backward Alt + c – Capitalize the word Alt + d – Delete word Alt + f – Move forward Alt + l – Make word lowercase Alt + n – Search the history forwards non-incremental Alt + p – Search the history backwards non-incremental Alt + r – Recall command Alt + t – Move words around Alt + u – Make word uppercase Alt + back-space – Delete backward from cursor // SecureCRT 如果没有配置好,这个就很管用了。

【其他特定的键绑定:】 输入 bind -P 可以查看所有的键盘绑定。这一系列我觉得更为实用。 Here “2T” means Press TAB twice $ 2T – All available commands(common) //命令行补全,我认为是 Bash 最好用的一点 $ (string)2T – All available commands starting with (string) $ /2T – Entire directory structure including Hidden one $ ./2T – Only Sub Dirs inside including Hidden one $ *2T – Only Sub Dirs inside without Hidden one $ ~2T – All Present Users on system from “/etc/passwd” //第一次见到,很好用 $ $2T – All Sys variables //写Shell脚本的时候很实用 $ @2T – Entries from “/etc/hosts” //第一次见到 $ =2T – Output like ls or dir //好像还不如 ls 快捷

Esc + T – 交换光标前面的两个单词

【命令行历史】 history 显示命令历史列表 ↑(Ctrl p) 显示上一条命令 ↓(Ctrl n) 显示下一条命令 !num 执行命令历史列表的第num条命令 !! 执行上一条命令 !?string? 执行含有string字符串的最新命令 Ctrl + r - 然后输入若干字符,开始向上搜索包含该字符的命令,继续按Ctrl r,搜索上一条匹配的命令 Ctrl + s - 与Ctrl + 类似,只是正向检索 Alt + < - 历史列表第一项 Alt + > - 历史列表最后一项 ls !$ 执行命令ls,并以上一条命令的参数为其参数

【命令行编辑】 Ctrl + u - 剪切命令行中光标所在处之前的所有字符(不包括自身) Ctrl + k - 剪切命令行中光标所在处之后的所有字符(包括自身) Ctrl + a - 移动到当前行的开头 Ctrl + e - 移动到当前行的结尾 Ctrl + d - 删除光标所在处字符 Ctrl + h - 删除光标所在处前一个字符 Ctrl + y - 粘贴刚才所删除的字符 Ctrl + c - 删除整行 Ctrl + (x u) - 按住Ctrl的同时再先后按x和u,撤销刚才的操作 Ctrl + w - 剪切光标所在处之前的一个词(以空格、标点等为分隔符) Alt + d - 剪切光标之后的词 Ctrl + f - 光标向前移动一个字符,相当与-> Ctrl + b - 光标向后移动一个字符,相当与<- Alt + f - 光标向前移动一个单词 Alt + b - 光标向后移动一个单词 Esc + f - 移动到当前单词的结尾 Esc + b - 移动到当前单词的开头 Ctrl + t - 颠倒光标所在处及其之前的字符位置,并将光标移动到下一个字符 Alt + t - 交换当前与以前单词的位置 Esc + t - 颠倒光标所在处及其相邻单词的位置 Alt + u - 把当前词转化为大写 Alt + l - 把当前词转化为小写 Alt + c - 把当前词汇变成首字符大写 Ctrl + v - 插入非凡字符,如Ctrl v Tab加入Tab字符键 alt + . — 插入最有输入的命令。 alt + b — 光标移动到前一个单词处。 Esc + w - 删除光标所在处之前的字符至其单词尾(以空格、标点等为分隔符)

【控制】 Ctrl + l - 清屏 ctrl + c — 终止当前命令或进程。 ctrl + d — 终止shell。 ctrl + z — 将进程放入后台,可以用fg命令将放入后台的命令调入前台。 Ctrl + s - 挂起当前shell Ctrl + q - 重新启用挂起的shell shell(bash)命令行快捷方式