git安装与使用
python@ubuntu:~$ sudo apt-get install git
python@ubuntu:~$ git config --global user.name "xxxx" [vim ~/.gitconfig]
python@ubuntu:~$ git config --global user.email "xxxx@163.com"
# 以上传个人的./MxDjango/中的代码为例
python@ubuntu:~/Desktop$ git clone https://github.com/study1994/MxDjango-django-study.git
正克隆到 'MxDjango-django-study'...
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.
检查连接... 完成。
python@ubuntu:~/Desktop$ cd MxDjango-django-study/
python@ubuntu:~/Desktop/MxDjango-django-study$ git init
重新初始化现存的 Git 仓库于 /home/python/Desktop/MxDjango-django-study/.git/
python@ubuntu:~/Desktop/MxDjango-django-study$ git add ./MxDjango/
python@ubuntu:~/Desktop/MxDjango-django-study$ git commit -m "first commit"
python@ubuntu:~/Desktop/MxDjango-django-study$ git push -u origin master
各种命令查看
python@ubuntu:~$ git
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
这些是各种场合常见的 Git 命令:
开始一个工作区(参见:git help tutorial)
clone 克隆一个仓库到一个新目录
init 创建一个空的 Git 仓库或重新初始化一个已存在的仓库
在当前变更上工作(参见:git help everyday)
add 添加文件内容至索引
mv 移动或重命名一个文件、目录或符号链接
reset 重置当前 HEAD 到指定状态
rm 从工作区和索引中删除文件
检查历史和状态(参见:git help revisions)
bisect 通过二分查找定位引入 bug 的提交
grep 输出和模式匹配的行
log 显示提交日志
show 显示各种类型的对象
status 显示工作区状态
扩展、标记和调校您的历史记录
branch 列出、创建或删除分支
checkout 切换分支或恢复工作区文件
commit 记录变更到仓库
diff 显示提交之间、提交和工作区之间等的差异
merge 合并两个或更多开发历史
rebase 本地提交转移至更新后的上游分支中
tag 创建、列出、删除或校验一个 GPG 签名的标签对象
协同(参见:git help workflows)
fetch 从另外一个仓库下载对象和引用
pull 获取并整合另外的仓库或一个本地分支
push 更新远程引用和相关的对象
命令 'git help -a' 和 'git help -g' 显示可用的子命令和一些概念帮助。
查看 'git help <命令>' 或 'git help <概念>' 以获取给定子命令或概念的
帮助。
创建版本库
创建一个空目录
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
把这个目录变成Git可以管理的仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
把文件添加到版本库
第一步,使用命令git add readme.txt,注意,可反复多次使用,添加多个文件;
git add file1.txt
git add file2.txt file3.txt
git add ./MxDjango/
第二步,使用命令git commit提交,完成【git commit -m “add 3 files.”【-m后面输入的是本次提交的说明】】。
修改状态
假如修改了readme.txt文件【add distributed】
python@ubuntu:~/Desktop/learngit$ git status # 掌握仓库当前的状态
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <文件>..." 更新要提交的内容)
(使用 "git checkout -- <文件>..." 丢弃工作区的改动)
修改: readme.txt
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
python@ubuntu:~/Desktop/learngit$ git diff readme.txt # 查看修改内容
diff --git a/readme.txt b/readme.txt
index 488642a..1d72fa6 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-git is a version control system.
+git is a distributed version control system.
git is free software
python@ubuntu:~/Desktop/learngit$ git add readme.txt
python@ubuntu:~/Desktop/learngit$ git commit -m "add distributed"
[master bb998bb] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)
版本回退
再次修改readme.txt文件【 under the GPL】
python@ubuntu:~/Desktop/learngit$ git add readme.txt
python@ubuntu:~/Desktop/learngit$ git commit -m "append GPL"
[master bf91eaf] append GPL
1 file changed, 1 insertion(+), 1 deletion(-)
python@ubuntu:~/Desktop/learngit$ git log # 查看提交历史,以便确定要回退到哪个版本。
commit bf91eaf3a021c0ed79df226729d68c119b7404b6 # commit_id
Author: xwp <xwp_fullstack@163.com>
Date: Mon Aug 28 09:04:02 2017 +0800
append GPL
commit bb998bbdaeaf0898d62559fd619a5df974218ccb
Author: xwp <xwp_fullstack@163.com>
Date: Mon Aug 28 08:53:49 2017 +0800
add distributed
commit 202e1976f9940ee8ec8a467b743cdf04e499acc3
Author: xwp <xwp_fullstack@163.com>
Date: Mon Aug 28 08:44:01 2017 +0800
wrote a readme file
python@ubuntu:~/Desktop/learngit$ git log --pretty=oneline
bf91eaf3a021c0ed79df226729d68c119b7404b6 append GPL
bb998bbdaeaf0898d62559fd619a5df974218ccb add distributed
202e1976f9940ee8ec8a467b743cdf04e499acc3 wrote a readme file
python@ubuntu:~/Desktop/learngit$ git reset --hard HEAD^ # 用HEAD表示当前版本,上一个版本就是HEAD^,往上100个版本写成HEAD~100
HEAD 现在位于 bb998bb add distributed
python@ubuntu:~/Desktop/learngit$ cat readme.txt
git is a distributed version control system.
git is free software
python@ubuntu:~/Desktop/learngit$ git log --pretty=oneline
bb998bbdaeaf0898d62559fd619a5df974218ccb add distributed
202e1976f9940ee8ec8a467b743cdf04e499acc3 wrote a readme file
python@ubuntu:~/Desktop/learngit$ git reset --hard bf91eaf # 指向commit_id为bf91eaf的版本
HEAD 现在位于 bf91eaf append GPL
python@ubuntu:~/Desktop/learngit$ git reflog # 查看命令历史,以便确定要回到未来的哪个版本。
bf91eaf HEAD@{0}: reset: moving to bf91eaf
bb998bb HEAD@{1}: reset: moving to HEAD^
bf91eaf HEAD@{2}: commit: append GPL
bb998bb HEAD@{3}: commit: add distributed
202e197 HEAD@{4}: commit (initial): wrote a readme file