用Git已经有一段时间了,零零总总用了好些命令。下面就写一点自己对Git的理解吧!
Git是一种分布式代码版本控制系统,是由Linus Torvalds 为了更好管理Linux内核而开发的,关于Linus开发Git中间还有许多有趣的小故事,感兴趣的童鞋可以自己去找找看看娱乐娱乐。
Git中有两个重要的概念,一个是仓库,一个是分支,你只要能理解好这两个概念,并熟悉下面的这些命令就差不多了。
仓库:英文名repository。大家都知道仓库就是用来装东西的,这里的仓库也差不多,只不过是用来装代码的。这个特殊的仓库里所有的代码都能被跟踪,仓库里面的每个文件修改、删除,以及增加都能被Git跟踪,必要的时候你可以回退到任意历史版本。
创建一个仓库非常简单 。 在终端敲 Git init 就可以在你当前目录下创建了一个仓库了,初始化之后目录里面会有一个.git目录,git需要的数据和资源都存放在这个目录里。接下来你就可以通过Git管理这个仓库了。管理仓库的几个重要命令:
git add filename 这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
git commit -m ‘XXXXXXX’ 添加文件后就需要提交到仓库,-m 参数是添加提交说明。
git status 查看仓库的状态,它可以告诉我们当前仓库下哪些文件被增加,那些还没被跟踪,那些被修改,哪些待提交,整个仓库动态一目了然。
git diff 查看还没暂存的文件更新了哪些部分,会非常详细的显示你还没提交的所有修改。加上参数 git diff --cached 查看已经暂存的变化。
git rm filename 从暂存区域移除.如果只想从Git 仓库中删除,即从暂存区域移除,但仍然希望保留在当前工作目录中git rm --cached filename。
git mv file_from file_to 移动文件
git log 查看提交历。-n 查看最近n次得提交信息。
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format后跟指定格式)。
git commit --amend 如果提交之后没做任何改动,那么用这个就可以取消提交。
git reset HEAD filename 撤销暂缓去区的filename 。
git checkout -- filename 取消对文件的修改。
远程仓库的使用。
git clone [url] 克隆一个远程仓库到本地,如 git clone https://github.com/jeremyteng1990/huying 就会克隆一个远程仓库到本地。
git remote 查看当前配置有哪些远程仓库。-v 显示对应的clone地址,如果有多个远程仓库,此命令将全部列出。
git remote add [shortname] [url] 添加一个新的远程仓库,就是把本地仓库和远程仓库关联,这样便可以推送和拉取数据,shortname为自定义的一个别名 url 当然就是远程仓库的地址了。
git fetch [shortname]/[url] 从远程仓库抓取远程仓库有的本地没有的数据。
git push [remote_name] [branch_name] 把本地的分支仓库中的数据推送到远程仓库。
git remote show [remote_name] 查看某个远程仓库的详细信息。
git remote rename name_from name_to 给远程仓库重命名。
git remote rm [remote_name] 删除远程仓库。
分支的使用。
git branch branch_name 创建分支。
git checkout branch_name 切换到分支。
git checkout -b branch_name 创建branch_name分支并切换到该分支。
git branch 查看当前分支。
git meger branch_name 把branch_name分支合并到当前分支。
git branch -d branch_name 删除branch_name分支。
最后讲一下用于向远程仓库推送的时候用到的SSH Key。在终端敲:ssh-keygen -t rsa -C "tengyami@gmail.com.com" 会在你的用户目录下生成一个.ssh 打开这个目录会看到id_rsa和id_rsa.pub两个文件,这两个文件就是你的密匙对,id_rsa是私匙,打死都不能告诉别人,id_rsa.pub是公匙你可以随便的告诉别人。
这篇文章还没有人发言,快抢第一!