一、基本操作
1、ubuntu下载安装git
apt-get update
apt-get install git
2、在我们的任意文件夹,如名为 gitlearn 的文件夹下,新建一个本地 git 仓库(repository
)
cd gitlearn //在 gitlearn 文件夹下,创建一个 gittest 的仓库
git init gittest //创建一个名为 gittest 的数据仓库
3、配置仓库 user 信息
每次 commit 的时候会带作者 name 和邮箱 email 信息。
git config --local user.name 'xxx'
git config --local user.email 'xxx@xxx.com'
//git config --list //查看 all 配置信息
//git config --local --list //查看 local 配置信息,需要在本地某个仓库下执行
//git config --global --list //查看 global 配置信息
//git config --system --list //查看 system 配置信息
--local //配置只适用于本仓库(当前所在目录的仓库)
--global //配置适用于所有仓库(当前用户的所有仓库,可以不在任意一个文件夹)
--system //系统级作用域(当前主机的所有用户的所有仓库)
4、新建文件/拷贝文件到 gittest 仓库(工作目录)
cd gitlearn/gittest //进入 gittest 的仓库
touch test1.cpp //新建一个文件 test1.cpp
cp /xxx/test2.cpp . //拷贝一个文件 test2.cpp
//git status //查看仓库文件信息
5、保存到暂存区(暂存区)
mv add commit
文件所在目录 ==》 工作区/仓库目录 ==》 暂存区 ==》 本地库
未被 git 跟踪 被 git 追踪,暂存 被 git 保存
git add test1.cpp // 一次 add 一个 未被追踪文件 到 暂存区
git add test2.cpp
git add test1.cpp test2.cpp // 一次 add 多个 未被追踪文件 到 暂存区
git status // 查看 仓库文件 和 未被被追踪文件
git add -u // add 所有 未被追踪文件 到 暂存区
6、提交到数据仓库(数据仓库)
git commit -m'add test1.cpp test2.cpp' //提交,记录提交信息
//git log //查看提交记录
//git log -oneline //只看提交记录的简介信息
//git log -oneline -n4 //只看提交记录的前4个
7、删除数据仓库
ls -al //查看隐藏文件
rm -rf .git //删除仓库内隐藏的 .git 文件
cd ../
rm -rf gittest //删除整个数据仓库文件
二、其他操作
1、重命名文件
git mv test1.cpp test_1.cpp
//git status
git commit -m 'rename test1.cpp to test_1.cpp'
//git log --oneline
2、创建分支
git log --all //显示 log 信息
git checkout -b temp xxxxxx //从 xxxxxx 这个 log_id 创建新分支,命名为 temp
3、查看分支树
git log --all --graph --source //图形化方式查看历史树
--all //显示所有分支的log信息,不加的话只显示当前分支
--graph //图形化的方式显示历史树
--source //显示路径和分支名
git branch -v //查看有多少分支
4、帮助
git help log
5、gitk 图形界面
6、.git 目录下的文件
HEAD //当前的分支
config //配置信息user
objects //保存的数据结构,commit,tree,blob
refs //保存分支
7、三种类型:commit 提交、tree 树、blob 文件
8、分离头指针
//第一种保留 分离分支的方式
git checkout <commit_id>
git checkout -b <new_branch_name> //保留分离的分支
//第二种保留 分离分支的方式
git checkout <commit_id>
git checkout master //切换到其他分支,如主分支
git checkout <new_branch_name> <detach_commit_id> //保留分离的分支
9、删除分支
git branch -D <branch_name>
//git branch -v //查看分支,以及当前所在分支
//gitk --all //图形查看分支
//git log --all --graph --source //图形查看分支
//修改最近一次的
git commit --amend
git reset --hard // 慎用,清空暂存区(将之前 add 的文件从暂存区清空)
git reset --hard <commit_id> //后退/前进 到某一步
git reset --hard HEAD^^ //只能后退,一个^表示后退一步
git reset --hard HEAD~n //只能后退,表示后退n步
git reflog // 查看前后所有提交历史
git log --oneline // 只能查看当前以前的提交历史
git reset --soft // 只移动 HEAD 指针
git reset --mixed // 移动 HEAD 指针 + 重置暂存区
git reset --hard // 移动 HEAD 指针 + 重置暂存区 + 重置工作区