🐫Git
Learn Git Braching - Game 通过基于浏览器的游戏来学习 Git
Pro Git Online 强烈推荐!学习前五章的内容可以教会您流畅使用 Git 的绝大多数技巧,因为您已经理解了 Git 的数据模型。后面的章节提供了很多有趣的高级主题。
Visualizing Git Concepts with D3 借助可视化直观地理解一些基本的 git 概念
Oh Shit, Git!?! 简短的介绍了如何从 Git 错误中恢复;
Git for Computer Scientists 简短的介绍了 Git 的数据模型,包含较少的伪代码以及大量的精美图片
Git from the Bottom Up 详细的介绍了 Git 的实现细节,而不仅仅局限于数据模型
Git是什么?
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
Git常用命令
常用命令
git add XX
:将XX
文件添加到暂存区git commit -m "给自己看的备注信息"
:将暂存区的内容提交到当前分支git push -u (第一次需要 -u 以后不需要)
:将当前分支推送到远程仓库git clone [email protected]:xxx/XXX.git
:将远程仓库XXX
下载到当前目录下git log
:查看当前分支的所有版本git status
:查看仓库状态有时候暂存了更改,尚未提交至仓库,如何取消暂存的更改?
git restore --staged XX
或git reset HEAD XX
:将XX
从暂存区里移除
有时候修改了本地工作目录(通常也叫工作区)的文件,如何放弃本地更改(尚未暂存)?
git checkout XX
或git restore XX
:将XX
文件尚未加入暂存区的修改全部撤销
Git 全局设置
git config --global user.name xxx
:设置全局用户名,信息记录在~/.gitconfig
文件中git config --global user.email [email protected]
:设置全局邮箱地址,信息记录在~/.gitconfig
文件中git init
:将当前目录配置成git
仓库,信息记录在隐藏的.git
文件夹中
Git 查看命令
git diff XX
:查看XX
文件相对于暂存区修改了哪些内容git status
:查看仓库状态git log
:查看当前分支的所有版本git log --pretty=oneline
:用一行来显示git reflog
:查看HEAD
指针的移动历史(包括被回滚的版本)git branch
:查看所有分支和当前所处分支git pull
:将远程仓库的当前分支与本地仓库的当前分支合并
Git 删除命令
git rm --cached XX
:将文件从仓库索引目录中删掉,不希望管理这个文件git restore --staged xx
:将xx
从暂存区里移除git checkout — XX
或git restore XX
:将XX
文件尚未加入暂存区的修改全部撤销
Git 代码回滚
git reset --hard HEAD^
或git reset --hard HEAD~
:将代码库回滚到上一个版本git reset --hard HEAD^^
:往上回滚两次,以此类推git reset --hard HEAD~100
:往上回滚100个版本git reset --hard 版本号
:回滚到某一特定版本
Git 远程仓库
正常的推送更改流程为:先 Add 和 Commit 本地修改,然后拉取远端更改,如果此时出现了合并冲突,解决合并冲突。然后,在合并冲突解决后推送更改。
git remote add origin [email protected]:xxx/XXX.git
:将本地仓库关联到远程仓库git push -u (第一次需要-u以后不需要)
:将当前分支推送到远程仓库git push origin branch_name
:将本地的某个分支推送到远程仓库git clone [email protected]:xxx/XXX.git
:将远程仓库XXX下载到当前目录下git push --set-upstream origin branch_name
:设置本地的branch_name
分支对应远程仓库的branch_name
分支git push -d origin branch_name
:删除远程仓库的branch_name
分支git checkout -t origin/branch_name
:将远程的branch_name
分支拉取到本地git pull
:将远程仓库的当前分支与本地仓库的当前分支合并git pull origin branch_name
:将远程仓库的branch_name
分支与本地仓库的当前分支合并git branch --set-upstream-to=origin/branch_name1 branch_name2
:将远程的branch_name1
分支与本地的branch_name2
分支对应
Git 分支命令
git branch branch_name
:创建新分支git branch
:查看所有分支和当前所处分支git checkout -b branch_name
:创建并切换到branch_name
这个分支git checkout branch_name
:切换到branch_name
这个分支git merge branch_name
:将分支branch_name
合并到当前分支上git branch -d branch_name
:删除本地仓库的branch_name
分支git push --set-upstream origin branch_name
:设置本地的branch_name
分支对应远程仓库的branch_name
分支git push -d origin branch_name
:删除远程仓库的branch_name
分支git checkout -t origin/branch_name
:将远程的branch_name
分支拉取到本地git pull
:将远程仓库的当前分支与本地仓库的当前分支合并git pull origin branch_name
:将远程仓库的branch_name
分支与本地仓库的当前分支合并git branch --set-upstream-to=origin/branch_name1 branch_name2
:将远程的branch_name1
分支与本地的branch_name2
分支对应
Git stash 暂存
git stash
:将工作区和暂存区中尚未提交的修改存入栈中git stash apply
:将栈顶存储的修改恢复到当前分支,但不删除栈顶元素git stash drop
:删除栈顶存储的修改git stash pop
:将栈顶存储的修改恢复到当前分支,同时删除栈顶元素git stash list
:查看栈中所有元素
Git更换远程仓库地址
git remote -v # 查看远端地址
git remote # 查看远端仓库名
git remote rm origin # 删除远程的仓库
git remote add origin https://github.com/xx/xx.git (新地址) # 重新添加远程仓库
git push --set-upstream origin master
本地项目上传到GitHub
配置
ssh-key
实现本地与Git
服务器免密交互
ssh-keygen # 生成密钥
cat .ssh/id_rsa.pub
# 复制密钥,提交到 git 服务器的 ssh 密钥中
按照下面的操作在本地文件夹配置一下
Git
:
git config --global user.name xxx # 设置用户名
git config --global user.email [email protected] # 设置用户邮箱
git init
git add .
git commit -m "xxx"
git remote add origin https://github.com/xxx/XXX.git # 建立连接
git push -u origin master
.gitignore的作用
工程常识:缓存文件,可执行文件,编译文件 不要传到自己的 git 项目里
.gitignore的作用就是帮助我们在git add时将我们指定的一些文件自动排除在外,不提交到git当中
在Git工作区的根目录下创建一个特殊的.gitignore
文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件
Last updated