Git学习(一)

来源:互联网 发布:林弯弯淘宝店 编辑:程序博客网 时间:2024/06/05 02:32

本文主要内容:
1. 使用GitHub创建仓库并克隆到本地
2. 在本地创建仓库并同步到远端
3. Git概念及常用命令


一.使用GitHub创建仓库并克隆到本地
1.使用GitHub创建仓库
1)在网页端登录自己GitHub账户,点击头像左侧“+”号,选择新的仓 库。
2)输入所创建的新的仓库的名字,适当添加描述,点击创建。此时仓库为 空,需要自己 添加文件。
3)可以在仓库界面新建文件并编辑,或者上传自己的文件,作为一个项目的内容。
4)添加完整个项目的所有文件后,创建新的分支,在新分支内修改并保存文件,点New pull request,添加本次修改标题和详细的修改描述,之后提交修改。
5)确定修改合理后合并上一步提交的修改,并删除合并后的分支。
通过以上步骤,在GitHub网页端实现新建一个仓库、分支、修改内容、提交修改并合并分支的过程。该仓库为远端仓库。
2.克隆远端仓库到本地
1)进入本地硬盘,创建新的文件夹并进入此文件夹(文件夹标题最好和项目有关),使用命令:git clone git@github.com:shuxiangqian/name.git将远端名字为name的仓库克隆到当前文件夹,可以实现在本地修改、开发项目。
2)本地文件修改后使用命令git add name添加本次修改后名字为name的文件,该命令可反复使用多次,添加多个文件。再使用命令git commit –m “notes”为本次修改添加内容为notes的说明。这两个命令可实现将本次所做的修改提交到本地仓库,而不是远端仓库。
使用命令git push将当前所做的工作推送到远端仓库,即GitHub端仓库。当本地只有一个master分支时,使用此命令相当于本地和远端之间的同步,不需要在远端再次合并。当本地有多个分支时,此命令会将所有分支都同步到远端。使用命令git push origin name,将本地名字为name的分支推送到远端仓库,可以实现分别推送。
二.在本地创建仓库并同步到远端
1.在本地创建仓库
1)在本地创建一个空文件夹,如hello_world。
2)进入这个文件夹,使用命令git init将这个文件夹变成Git可以管理的仓库,即初始化本地仓库。此时仓库为空。
3)在这个仓库中添加文件并修改,使用命令git add name和命令git commit –m “notes”将修改过的文件添加到本地仓库。
2.将本地仓库推送至远端
1)在GitHub远端创建一个空的仓库,名字和前几步中仓库名字相同,为hello_world。此时仓库为空,不需要添加文件。
2)在本地仓库中使用命令git remote add origin git@github.com:shuxiangqian/hello_world.git将本地仓库和远端仓库建立关联,origin为远端仓库的默认叫法,再使用命令git push –u origin master将本地master分支的版本推送到远端origin中。其中-u参数仅需第一次推送时添加。此时远端仓库中的内容将会和本地仓库中的内容一致。
后续使用时只要本地仓库做了提交,使用git push origin master命令就可将本地master分支推送至远端仓库。
三.Git概念及常用命令
1.SSH Key设置
在用户主目录下,看是否有.ssh目录,如果没有,输入命令
ssh-keygen –t rsa –b 4096 –C “shuxiangqian@163.com”
之后一路点击回车,如果没有出错,则可以在主目录找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件。在GitHub网页端设置界面添加SSH Key,在Key文本框里粘贴id_rsa.pub文件的内容,点击添加完成设置。
Git支持SSH协议,本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,因此设置SSH Key是为了确认身份,让GitHub识别出你做的推送确实是你做的而不是别人冒充的。同时,GitHub允许添加多个Key,假定有多台电脑,在公司和在家里都要向仓库提交修改,则只要把每台电脑的Key都添加到GitHub,就可以在不同电脑上往GitHub上推送了。这一步相当于是GitHub对我们自己电脑的认证,只需要做一次就可以。
2.工作区和暂存区
工作区为电脑里我们能看到的目录文件。工作区内有一个隐藏目录.git,这是Git的版本库,版本库里存放了很多东西,其中最重要的是称为 stage的暂存区,还有Git自动创建的第一个分支master,以及指向master的一个指针HEAD。
这里写图片描述
将文件添加进版本库里的时候,命令git add实际上是把文件修改添加到暂存区,命令git commit是把暂存区的所有内容提交到当前分支。简单理解为:git add将所有要提交的修改放到暂存区,执行git commit可以一次性将暂存区的所有修改提交到分支,一旦提交后,如果后续没有做任何修改,则工作区就是干净的。
3.创建与合并分支
当只有一个分支时,为master分支,HEAD指向master,而master指向提交,所以HEAD指向的是当前的分支,如下图
这里写图片描述
开始的时候master是一条分支线,Git用master指向最新的提交,每次提交,master分支都会向前移动一步,随着不断提交,master分支的线也越来越长。当创建一个新的分支,如dev,Git新建一个指针叫dev,指向和master相同的提交,再把HAED指向dev,就表示当前分支在dev上
这里写图片描述
此时对工作区的修改为针对dev分支,新提交一次后,dev指针向前移动一步,而master指针不变
这里写图片描述
当在dev分支的工作完成后,可以把dev分支合并到master上,Git直接把master指向dev的当前提交,完成合并
这里写图片描述
合并完分支后,可以删除dev分支,最终只剩下master一条分支
这里写图片描述
4.Git常用命令
git init 初始化一个空的版本库
git clone 将远端仓库下载到本地文件中,常用方法: git clone git@github.com:shuxiangqian/name.git
git pull 获取更新,将远端的更新下载到本地
git status 显示工作区状态
git add 添加文件修改,使用git add . 添加所有改动的文件
git commit –m “notes” 将修改提交到本地版本库并添加注释
git push 将本地版本库的内容推送到远端仓库
git log 显示提交日志
git reset 重置当前HEAD到指定状态,HEAD^代表上一个版本,HEAD^^代表上上一个版本,HEAD~100代表往上100个版本,使用git reset –hard HEAD^回退到上一个版本,或者使用git reset –hard num,num代表想要回退的某个版本的版本号,版本号可以使用git log命令查看
git branch 查看分支
git checkout name 切换到name分支
git checkout –b name 创建并切换到name分支
git merge name 合并name分支到当前分支
git branch –d name 删除分支
git checkout – file 使file文件回到最近一次commit的状态
git rm file 删除file文件,需要commit提交
git push origin dev 将本地dev分支推送到远端

注:文中图片来自廖雪峰的网站

1 0
原创粉丝点击