Git学习记录1-入门

在多人协作开发代码时,学长强烈建议使用git。所以学习一下基本操作,并记录下来。主要参考网站是https://www.atlassian.com/git/tutorials/what-is-version-control。Git有一个特点是有很多新的概念,指令,对于初学者不友好。但是学习后,确实是一种很方便的工具,可以极大地便利之后的开发协作。学一次,一劳永逸。

常用的指令,下边会一一讲解。

git init
git clone <repo url>

git add .
git commit -m "description text of this commit"
git pull <remote>
git push <remote>

先列举几个才搞清楚的概念。

  • Git repository:project的一个虚拟存储,保存了代码的历史版本。
  • Stash area:这是git方法中一个特殊的设计,相当于是缓存区。会将修改暂留在这里,直到它们被commit(真正的保存)。
  • origin和master:在实践中经常遇到的两个词,一直不懂为什么。这俩分别是一个repository和这个repository其中一个branch的名字。在git中起名只是一个标识符而已,这两个词都是默认的名字。加入在git clone -o wahaha,那远程branch的名字就是wahaha/master。
  • branch:对于一个远程仓库,默认有一个master的分支,也就是原本的主干。如果有新的需求,新的功能什么的,就可以拉一个新的branch出来。在branch上修改好再合并就可以。
  • fork:在github上游玩过的大家肯定不陌生,但是fork是github才有的概念,并非git原生。加入说我喜欢一个叫贪吃蛇的repository,我fork会创建一个完整的一样的reository到自己的github账户。可以clone到本地设备,修改,push。如果最后觉得自己修改了一个很好的功能,可以发pull request给贪吃蛇,它的管理者会考虑交流修改,然后看是否接受。如果接受,我的修改就会加入到他的repository。

接下来是常用指令原理的介绍:

初始化Git repository

创建一个新的repository的第一种方式自己新建一个空的

cd /path/to/your/existing/code 
git init

第二种是clone一个已有的repository,一般从github上clone一个repository到本地都用这个指令。

git clone <repo url>

将修改保存进repository

之前说repository记录了一个project中代码的历史版本或者说修改历史。现在我们有了一个repository,如果现在我们想将自己的修改保存进repository该怎么做呢?

假设现在新写了一个CommiTest.txt文件,要把这个修改加入repository。

cd /path/to/project 
echo "test content for git tutorial" >> CommitTest.txt 
git add CommitTest.txt 
git commit -m "added CommitTest.txt to the repo"

这里有两个新指令"git add"和"git commit"。git add会把修改加入到staging area,这个修改只是暂时的保存下来。而真正的保存是用git commit指令,commit指令更像在我们本地使用文档编辑时保存的功能,它将修改保存进repository。在真正的使用git commit将修改保存下来之前,可以有多次git add。可以使用git status查看staging area中的修改情况。

Repo-to-repo collaboration

之前讲的是在自己本地将修改保存,如果和别人合作,那就需要将自己的修改和别人的修改合并。就要用到git pullgit push了。

首先是git push,如果repository是用git clone爬下来的,git clone会自动configure下载到的和远程的repository,git push可以直接把修改push到远程。但是如果是用git init新建的repository,是没有远程的repository可以push的。这样就需要新建一个远程的repository,比如去Github上建一个。然后把本地的和远程的repository连接起来。

git remote add <remote_name> <remote_repo_url>
git push -u <remote_name> <local_branch_name>

除了远程repository的地址,还需要设置一下username或者email什么的。这些分为三个等级local(repository级别的),global(user级别的),system(系统级别的)。下边就用user级别的global举例。

git config --global user.name <name>
git config --global user.email <email>

ssh-keygen -t rsa -C "your_email@youremail.com"
cat ~/.ssh/id_rsa.pub #copy the result to the github ssh-key manager

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值