一、安装git 配置
安装完成后配置 $ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
git config --list 查看配置
git config -e 编辑配置
git config -e --global 修改全局配置
二、初始化仓库
git init
注:git init 初始化一个仓库 出现 .git
如果没有可以 ls -ah
Alt 切换 > 工具 》 文件夹选项 查看 显示和隐藏文件和文件夹
添加文件或文件夹到暂存区
三、添加文件或文件夹到暂存区
git add [file1] [file2]...
git add [dir文件夹]
git add . 或 git add * 提交全部
四、代码提交到仓库区
git commit -m "说明信息"
git commit file1 file2 ... -m "说明信息"
git commit --amend -m "my commit"
五、查看
git status
git log
git relog
六、撤回
(1)工作区撤回
git checkout .
git checkout file_name
(2)暂存区撤回
git reset HEAD [file] 重置缓存区与上次commit保持一致;但工作区不变;
git reset --hard 工作区和缓存区都与上次commit一致
3.
git log
git reset --hard id 可以切换 commit的不同版本
****假定我修改了文件,还提交到了缓存区,没有commit
这时候 git checkout 只能又回到最近的一次add 所以用git checkout -- 是回不到add以前的
要用 git reset HEAD test.txt
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
如何版本回退
(1)git log 查看 commit 的版本(git log --pretty=oneline)
(2)每提交一个新版本,实际上git都会把它串成一条时间线
(3)git中用HEAD 表示当前版本,HEAD^ 表示上一个版本 HEAD^^表示上上个版本
前面太多版本的化,用HEAD~100
(4) git reset --hard HEAD^
git reset --hard 3628164
这样就内容就变成 这个版本的commit内容
Git reflog
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令
git reset --hard commit id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
八、创建分支和撤换分支
查看分支 git branch git branch -a
创建分支
git checkout -b dev 新建并切换分支
git checkout dev 切换分支
删除分支
//不会覆盖已经存在的分支
重命名分支:git branch -m branch_name branch_new_name
//会覆盖已经存在的分支
重命名分支:git branch -M branch_name branch_new_name
删除分支:git branch -d branch_name
强制删除分支: git branch -D branch_name
删除远程分支: git push origin --delete branch_name
合并分支
git merge dev
git merge dev --no-ff -m "msg"
九、暂存
总的来说,git stash命令的作用就是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上恢复出堆栈中的内容。这也就是说,stash中的内容不仅仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交
git stash
git stash list
git stash pop
git stash apply
将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。
十、标签
git tag 列出标签 git tag tag_name -m 'tag message' 打标签
git show tag_name
git tag -d tag_name 删除标签
git push origin tag_name
git push origin --tag 推送所哟标签到远程仓库
git push origin :refs/tags/tag_name 从远程仓库删除标签
十一、免密码
git config –global credential.helper store
lf 配置
git config --global core.autocrlf false