第13组第2次作业
李乐
创建版本库并初始化
生成一个readme.txt文件,注意进行txt文件编辑时勿用windows自带的,可以用vi readme.txt进行编辑后先按Esc,再按:w进行写入,最后退出。
将readme.txt文件添加到版本库
将本地的git仓库添加到GitHub远程库里
从GitHub远程库克隆到本地仓库
注意:这里我们是先建立了本地的git仓库,克隆的前提是先建立远程库,后克隆到本地
取回origin主机的master分支
当前分支自动与唯一一个追踪分支进行合并
解决冲突问题
付英健
创建一个项目
首先进入GIT 文件管理系统
选择公开的管理方式
建一个Repository name
输入readme-edits
点击README.md文件
添加信息 关于小组的信息
添加信息后的主界面
OPEN A PULL REQUEST
修改信息
更新数据
更新数据结束的界面
最后是合并两个branch
在网页上的操作进行后我又下载桌面版。简单尝试了一下
首先在ubuntu上安装一下,开始安装的不成功因为我输入的apt-get install git
后来才知道要输入sudo apt-get install git
首先建了一个库
登陆
先使用git config –list检查装置
添加文件 hello-word.h,hello-word1.h
使用git status
使用commit
最后连接远程数据库
汪步鹏
github在大学的时候,被老师和学长们推荐了,但是直到2015年,参与了学长的一个private项目,才正式使用。
此后便一直没有使用,这次作业让我有机会再次使用,非常幸运。
学习程序语言,往往都是从输出HelloWorld开始,那么练习git也从HelloWorld项目开始。
先是在github上创建了repository,并命名为heloworld(由于之前已经存在了helloworld),由此也可以得知github是不区分项目名称大小写的。
创建完repository之后,也可以在自己的个人主页上看到相应的活动。
接下来进行本地的版本库操作。
命令解释:
使用git init进行初始化。
然后使用git add将已经写好的HelloWrold.java程序添加到缓存区。
再使用git commit提交修改的内容。
git remote add是添加远程库。
git push是将本地commit的代码更新到远程版本库中。
当然,过程中还需要登录github
最后查看github,helloworld.java文件成功被push。
胡慧
我的Github学习之路
目录
1. Git简介
2. Git安装和版本库创建
3. Git文件修改处理
4. 远程仓库的建立和克隆
5. 分支管理
1.Git简介
Git目前是世界上最先进的分布式版本控制系统。分布式版本控制系统没有“中央服务器”,每个人电脑上都有一个完整的版本库,不需要联网。相比集中式版本控制系统,安全性要高很多。
2.Git安装和版本库创建
2.1 Git安装
在windows安装了git,使用git-bash进行命令行操作。
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
2.2 版本库创建
Firstly,创建一个空目录
mkdir story1
cd story1
pwd
/c/Users/Aspire/story1
Secondly,通过git init
把目录变成Git可管理的仓库。可以看到,产生了一个隐藏文件夹.git。
ls -a
./ ../ .git/ 1.txt
2.3文件编辑和提交
文件编辑器可以采用Notepad++,VisualStudio node等,我选用vim编辑器和vs node,方便易上手。
例如文件1.txt编辑完成后,
git add 1.txt
git commit 1.txt
git add 1.txt 2.txt 3.txt
git commit -m "3txts have been changed"
commit -m 后面是为了区分不同版本以及方便记忆处理而自定义的。
3. Git文件修改处理
3.1时光机
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: 1.txt
no changes added to commit (use "git add" and/or "git commit -a")
此命令提示我们文件是否被修改却并未提交。
git diff
此命令能清除看到文件修改的位置和内容增减。
3.2版本回退
git log
查看由近及远三次提交日志,输出信息包括commit id版本号,Author,Date,版本名称。
git log --prety=oneline
用于只查看版本编号,具有唯一性。
穿梭前,用git log
可以查看提交历史,以便确定要回退到哪个版本。
git reset --hard HEAD^
往上两个版本HEAD^^,往上10个版本HEAD~10。
git reset --hard 3628164
不采取一步步退回,而是直接让HEAD指针指向特定的版本号(版本号不用写全)。
git reflog
查看历史的每一次记录,任何版本都可到达。
3.3暂存区与工作区
文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
gut diff HEAD -- 1.txt
此命令可查看工作区和版本库最新版本的区别。
3.4撤销修改
场景1:改乱了工作区某个文件内容,若想直接丢弃修改,用命令 git checkout -- 1.txt
场景2:改乱了工作区内容,还添加到暂存区,想丢弃修改,第一步,版本回退,git reset head 1.txt, 第二步,按场景1操作。
场景3:已经提交不合适的修改到版本库但没有推送到远程库,按版本回退操作。
场景4:将不合适的修改提交并推送到远程库,那就呵呵啦
3.5 删除文件
删除文件后工作区和版本库不一致
要么删除版本库中的对应文件
git rm 1.txt
git commit -m "remove 1.txt"
要么通过版本库恢复工作区误删的文件
git checkout --1.txt
4.远程仓库的建立和克隆
4.1远程仓库
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "example@163.com"
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
第3步,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点击"Add Key"。
添加成功。
4.2添加远程库
先有本地库,后关联远程库。
关联一个远程库,使用命令
git remote add origin git@github.com:bonniefox/story1.git
关联后使用git push -u origin master
第一次推送master分支的所有内容。
之后,每次本地提交后,就可以使用
git push origin master
推送最新修改。
bug:
我在创建远程库的时候,故意让远程库的名字和本地库不一样,还添加了README.md,导致了一系列的错误。
重新建立了同名远程库并修改用户名大小写之后,又出现如下error:
经过多番尝试,有了新的发现和总结:
一、与本地仓库对应的远程仓库必须同名,不然系统搜索不到与本地同名的远程仓库。
二、如果创建远程仓库时顺便把README.txt打对勾了,那么很不幸,由于远程版本更加新,本地版本更旧,我们不得不pull远程,又push本地,十分麻烦,不如直接先建远程,再从本地提交。
如果创建远程仓库时没打对勾,仓库是空的,那么可以直接将远程和本地关联并push。
最后,在本地仓库和远程仓库都非空的状态下,是无法关联历史的,要清空一方。
4.3远程仓库的克隆
先创建远程库,再克隆到本地。
远程建好的仓库比如gitskills,
用命令
git clone git@github.com:bonniefox/gitskills.git
本地的当前目录出现了gitskills文件夹
5.分支管理
5.1创建与合并分支
查看分支:git branch
创建分支:git branch <dev>
切换分支:git checkout <dev>
创建并切换到当前分支:git checkout -b <dev>
合并某分支到当前分支:git merge <master>
删除分支:git branch -d <dev>
tips:
在编辑上面一段过程中无意中发现Markdown可以通过反引号`一左一右将代码括起来可使代码在文字中插入。
5.2 git fetch
与git pull
的比较
git fetch
从远程origin的master分支下载最新版本到origin/master上,然后比较本地的master和origin/master分支的差别。
git fetch origin master
git log -p master..origin/master
git merge origin/master
也可以采用以下方式更清晰:
git fetch origin master:tmp
git diff tmp
git merge tmp
git pull
三步合一,直接从远程获取最新版本并merge到本地
git pull origin master
实际使用中更多运用git fetch
相对更加安全。