git的使用简介 常用命令

git简介:

Git是目前世界上最先进的分布式版本控制系统,管理代码贼6,目前很多编译器都支持git,是一个很好的团队开发工具。

一、下载git

Windows:

官网下载: https://git-scm.com/downloads

国内镜像下载:https://pan.baidu.com/s/1kU5OCOB#list/path=%2Fpub%2Fgit

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

这个地方的git bash操作类似于Linux上的命令行操作,我在自己搭建的Linux系统服务器上研究过,用来同步服务器和本机代码。

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"

Linux:

$ sudo apt-get install git  //或 $sudo yum install git

 

Mac Os X:

(没钱买,没用过,这里借用了廖雪峰网站里面的教程)

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/

第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

Xcode是Apple官方IDE,功能非常强大,是开发Mac和iOS App的必选装备,而且是免费的!

 

二、创建版本库(命令行窗口里粘贴快捷键是shift+ins)

(windows版本作为介绍,Linux类似,需要用命令找到合适的路径,然后直接输入git命令就好)

1、找到合适的地方用作版本库

这个目录就是你的代码库的位置,一般就是一个单独的项目作为一个版本库,不一定要是空文件夹

创建版本库的方法很简单,找到项目目录,然后鼠标右键调出git bash窗口

2、以当前文件夹作为版本库的命令 

$ git init

命令执行前后的对比(多了个叫.git的隐藏文件夹,这就说明ok了,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了)。  Linux下执行命令 ls -a可查看是否有这个.git文件夹。

注:路径中不要有中文汉字,避免各种乱七八糟的问题。

 

三、版本提交,版本回退,管理修改,撤销修改,删除文件

1、版本提交

$ git add 文件名或文件夹名称
$ git commit -m "这次的提交描述"

如git add ./就是上传所有代码,这个地方要注意的就是有的框架里会有个叫.gitignore的文件,里面的内容会让git在上传代码的时候忽略掉一些框架本身的东西,如果你是从github上下载的代码,很多时候就需要自己再去下载个框架填进去。

git commit -m""就是将这次的git add 的内容提交到一个叫commit的快照里面。一次commit可以提交很多个add的内容。

2、版本回退

回退到上一个版本(可以多次使用)

$ git reset --hard HEAD^

回退到上两个版本

$ git reset --hard HEAD^^

git log查看提交历史,然后git reset 回退到指定版本 。这也是每次commit -m" "中写内容的重要性,说不定什么时候就拯救了你写了好几天的代码。hard后面跟的版本号没必要全部写出来,git会自动去补全匹配。

$ git log 
$ git reset --hard d954ae

 

3、管理修改(引用廖雪峰的git教程)

我们来一个操作,第一次修改 -> git add -> 第二次修改 -> git commit

然后git status查看状态,咦,怎么第二次的修改没有被提交?

Git管理的是修改,当你用git add命令后,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

提交后,用git diff HEAD -- readme.txt命令可以查看工作区和版本库里面最新版本的区别。

那怎么提交第二次修改呢?你可以继续git addgit commit,也可以别着急提交第一次修改,先git add第二次修改,再git commit,就相当于把两次修改合并后一块提交了:

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

4、撤销修改(引用廖雪峰的git教程)

自然,你是不会犯错的。不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.

在你准备提交前,一杯咖啡起了作用,你猛然发现了stupid boss可能会让你丢掉这个月的奖金!

既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用git status查看一下:

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

你可以发现,Git会告诉你,git checkout -- file可以丢弃工作区的修改:

$ git checkout -- readme.txt

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

现在,看看readme.txt的文件内容:

$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.

文件内容果然复原了。

git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

5、删除文件(引用廖雪峰的git教程)

在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交:

$ git add test.txt

$ git commit -m "add test.txt"
[master b84166e] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

$ rm test.txt

这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了:

$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    deleted:    test.txt

no changes added to commit (use "git add" and/or "git commit -a")

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

$ git rm test.txt
rm 'test.txt'

$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
 1 file changed, 1 deletion(-)
 delete mode 100644 test.txt

现在,文件就从版本库中被删除了。

 

四、添加远程库

1、绑定ssh kyes(不能忽略的步骤!)

本机上创建ssh key,如果你的用户目录下已经有.ssh目录并且有这两个文件的话,跳过生成这一步,直接去绑定。

$ ssh-keygen -t rsa -C "[email protected]"

用记事本打开pub这个文件,复制里面的内容。

打开GitHub节目,设置里面,ssh and gpg keys 里面 new ssh key 

输入标题,然后再key里面粘贴刚刚复制的ssh key即可。

 

2、添加到github远程库

在GitHub里面创建一个新的repository

目前,在GitHub上的这个test仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。

现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令:

$ git remote add origin 你自己github上面看到的那个ssh链接

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

下一步,就可以把本地库的所有内容推送到远程库上:

$ git push -u origin master

提交后看到的github项目里面就会有你本地的文件,

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

从现在起,只要本地作了提交,就可以通过命令:

$ git push origin master

过程中第一次提交的话ssh会给你一个警告,就是是否相信这个链接,点确定就好,问题不大。

 

五、从远程仓库下载

1、机器里添加版本库,GitHub账号

里添加机器的ssh key

方法上面有介绍,这里不再重复介绍,一台机器只需要添加一回,我这里指的是没添加过的需要添加,否则就会失败。

2、克隆下来

$ git clone 刚刚那个链接,类似[email protected]:yourname/test.git的

慢慢的等着就好了,

 

更多的内容就不写了,如分支管理,标签管理啥的,还有码云,可以参考廖雪峰的教程:

https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

 

 

 

 

注:本博客仅供学习交流使用,内容有借用廖雪峰网站中部分内容,如有侵权请联系我删帖,谢谢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章