2015年12月02日 GitHub入门学习(四)Git操作

时间:2022-12-03 11:07:20

序,学习使用Git是一项新技能,你将了解到Git与SubVersion的区别。

一、基本操作

git init

初始化仓库,请实际建立一个目录并初始化仓库,.git目录里存储着管理当前目录内容所需的仓库数据。

git status

查看仓库的状态。

git add

让文件成为Git仓库的管理对象。将文件加入暂存区(stage或者index)中,暂存区是提交之前的一个临时区域。

git commit

将暂存区中的文件实际保存到仓库的历史记录中。

git commit -m "comments"

不加-m,只输入git commit可以记录更详细的的描述信息。

格式:

第一行:用一行文字简述提交的更改内容

第二行:空行

第三行: 记录更改的原因和详细内容

好处:可以通过确认日志的命令或工具看到这些记录。

git log

    查看当前分支当前状态为终点的历史日志。

git log --pretty=short 只显示提交信息的第一行

git log filename/dirtory 只显示指定目录、文件的日志

git log -p

git diff

查看工作树和最新提交的差别

git diff HEAD

二、分支的操作

git branch

将分支名列表显示,左侧标有“*”表示当前所在的分支。

git checkout -b "branch_name"

以当前的分支为基础创建新的分支。

git branch feature-A #创建feature-A分支

git  checkout feature-A#将当前分支切换为feature-A

git checkout - #切换回上一个分支

git merge 合并分支

首先切换到master分支, $git checkout master

然后合并特性分支feature-A, $git merge --no-ff feature-A

合并时也许会出现冲突,解决冲突的办法就是手动去除标记,并重新执行git add 和 git commit操作

git log --graph

图形化形式显示提交日志,包括分支合并也能清楚看到

三、更改提交的操作

git reset --hard "hashvalue"

让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用git reset --hard 目标时间点的哈希值。

git reflog

查看当前仓库执行过的操作日志,最前面的就是可以用于回溯到特定状态的哈希值。

2015年12月02日 GitHub入门学习(四)Git操作

git commit --amend

修改上一条提交信息,可以执行git commit --amend命令,修改上次提交信息,然后保存退出。

git release -i HEAD~2

更改历史提交信息,利用git release命令,可以选定当前分支中包含HEAD在内的2个最新历史记录,并在编辑器中修改,后保存。

四、推送至远程仓库

git remote add origin git@github.com:yaochuancun/helloworld.git

添加远程仓库,将远程仓库与本地仓库建立联系。执行命令后GIT会自动将远程仓库的名称设置为origin(表示符)

git push

将当前分支下本地仓库中的内容推送给远程仓库。

例子:git push -u origin master 当前在本地master分支将内容推送到远程仓库的master分支,-u 参数可以在推送的同时,将origin 的master分支与当前分支建立联系,以后运行git pull时会直接从远程仓库的分支获取内容。

例子:git push -u origin feature-d,可以推送到远程仓库中除master以外的分支。

五、从远程仓库获取

git branch -a

添加-a参数可以同时显示本地仓库和远程仓库的分支信息。

git clone ssh_address

例如:$ git clone git@github.com:yaochuancun/helloworld.git,执行git clone后默认会处于master分支下。本地master分支与远程仓库的master分支在内容上是完全相同的。

git checkout -b feature-d origin/feature-d

获取远程的feature-d分支,并且在本地建立feature-d分支,本地分支feature-d与远程分支feature-d的内容完全相同。

本地分支feature-d修改后,可以推送到远程仓库的feature-d分支,git push就可以。

git pull

从远程仓库对应分支获取最新代码

六、Git学习资料

Pro Git

LearnGitBranching

https://pcottle.github.io/learnGitBranching/

tryGit

http://try.github.io/