序,学习使用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
查看当前仓库执行过的操作日志,最前面的就是可以用于回溯到特定状态的哈希值。
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/