Linux 下安装: sudo apt-get install git
查看版本 :git --version
配置用户名和邮箱: git config --global user.name chen
git config --global user.email 我的邮箱
查看配置: git config --list 配置文件: ~/.gitconfig
===========================================
创建repository
本地创建:(在 项目文件加内) git init
远程克隆: (使用别人的项目) git clone 别人的链接
===========================================
从working directory (工作区) 往staging area(本地仓库)添加文件:git add hello.go
从staging area(本地仓库)往 history 提交: git commit -m "提交的信息"
与上一次提交合并 git commit --amend
git push -f origin master
===========================================
查看状态: git status -
会显示 两个标志位 +文件名
第一个标志位代表 staging area(本地仓库)发生了变化 (add了新文件 还未 commit)
第二个标志代表 working directory (工作区) 发生了变化(文件更改了 还未add)
两个标志位都为空 代表 文件都一致
===========================================
查看working directory (工作区)相比于 staging area更改了哪些不同:git diff
查看staging area(本地仓库)相比于history更改了哪些不同:git diff --staged
查看working directory (工作区)相比于 history更改了哪些不同:git diff HEAD
===========================================
撤销误操作:git reset 文件名 (可以从history 中取出 放到 staging area)
git checkout文件名(可以从staging area中取出 放到 working directory)
git checkout HEAD 文件名 (可以从history 中取出 放到 working directory)
===========================================
移除/重命名 文件 git rm hello.go (从 working directory 中删除)
git rm --cached hello.go (从 staging area中删除)
重命名: git my 旧文件名 新文件名
===========================================
暂存工作区: git stash (收到抽屉里)
git stash list (查看抽屉里)
===========================================
回退版本 HEAD 指向最新提交的版本
HEAD ~ 指向最新提交的版本前一个的版本
git cat-file -t HEAD
===========================================
查看所有分支: git branch (分支前的星号表示 处于当前分支)
添加分支: git branch newbranch
切换分支: git checkout newbranch
删除分支: git branch -d newbranch
添加并切换分支:git checkout -b newbranch
合并分支:git merge newbranch (合并到当前分支)
===========================================
合并提交信息 git rebase命令使用步骤
git log 查看commit 日志
git rebase -i “想要合并的commit hash 之前"
之后会进入vi界面, 把(除第一个外)之下的commit 之前都改成squash
pick
的意思是要会执行这个 commitsquash
的意思是这个 commit 会被合并到前一个commit
保存退出后,会进入重新输入合并后的commit 信息解密,删除多余的,保存退出
git log 再次查看 多条commit 合并为一条,可以push 了
push会出现本地落后与远程的情况,使用任一种方法:
- git push -f origin staging
- git push --delete origin staging (先删除分支再push)