git 分为 工作区域、暂存区域、git仓库/版本库
流程:初始化Git仓库——添加到暂存区域——提交到本地Git仓库——提交到远程Git仓库(码云,Github)
配置个人的用户名称和电子邮件地址:
git config --global user.name "K"
git config --global user.email "youremail@example.com"
查看配置信息
git config --list
初始化空的Git仓库,在当前目录创建
git init
初始化空的Git仓库,指定目录创建
git init dir_name
初始化空的git仓库,作为远程仓库
git init --bare test.git
将当前目录下的文件添加到暂存区域
git add * //添加所有文件
git add README.md //添加指定文件
将暂存区域的文件提交到git仓库
git commit -m "This is test." //提交到git仓库,并添加描述
查看Git状态
git status
git status -s
取消已缓存文件
git reset HEAD //将所有暂存区域的文件取消,回到工作区域
git reset HEAD -- file //将file从暂存区取消
从暂存区域拷贝文件到工作区域
git checkout -- file
查看历史提交
git log
--oneline //简单显示快照
--decorate //显示指向的所有引用
--graph //显示详细分支情况
--all //显示所有分支
将HEAD向上移动一个快照,git仓库的版本回退到暂存区(一个~代表一个版本)
git reset HEAD~ //回退一个版本,覆盖到暂存区域, 默认 --mixed
将HEAD向上移动一个快照
git reset --soft HEAD~
将HEAD向上移动一个快照,此快照会覆盖到暂存区域和工作区域
git reset --hard HEAD~
回滚到指定快照
git reset id(至少前五个以上)
回滚文件
git reset id file/dir
文件比较
git diff //工作区域与暂存区域文件比较
git diff id1 id2 //历史快照比较
git diff id //工作区域与历史快照进行比较
git diff --cached //暂存区域与快照进行比较
git diff --cached id //暂存区域与历史快照进行比较
修改最后一次提交
git commit --amend -m "This is a test."
删除文件,只是删除工作区域和暂存区域中的文件
git rm -f file
git rm --cached file //删除暂存区域的文件
重命名文件
git mv old_file new_file
分支
创建分支
git branch name
git branch -d name //删除分支
切换分支
git checkout branch_name
创建新分支并切换
git checkout -b branch_name
查看所有分支
git log --decorate --oneline --graph --all
合并分支
git merge branch_name
操作远程仓库
配置远程仓库地址:
- 使用HTTPS方式
每次将本地代码push到remote warehouse中都需要验证用户密码 - 使用SSH方式
配置秘钥,每次push到remote warehouse中不需要验证用户密码
创建秘钥在此电脑用户目录下使用Git bash执行:ssh-keygen -t rsa -C "youremail@example.com"
在remote warehouse中配置此电脑的公钥即可
添加远程仓库
git remote add project_name remote_warehouse
创建秘钥
ssh-keygen -t rsa -C "youremail@example.com"
查看当前的远程库
git remote
git remote -v //查看详细信息git
推送到远程仓库
git push -u shortname branch_name //选项是指定一个默认主机
git push --force shortname //当远程仓库发生了更改与本地仓库不符,则还需要强行上传,可以使用force
git push --all shortname //本地所有分支都推送到远程仓库
拉取远程仓库的分支到本地仓库
git fetch origin
将远程仓库中克隆本地目录
git clone https://git