将文件添加到暂存取
#将一个或多个文件添加到暂存区
git add [file1] [file2] ...
# 将所有文件添加到暂存区
git add .
将文件提交到本地仓库
git commit -m '提交的message'
查看文件变动
# 添加到暂存区之前进行查看文件变动
git diff [file1]
查看当前分支的历史提交记录
# 查看详细的提交记录
git log
# 查看简略的提交记录(一行现实)
git log --pretty=oneline
版本回退
# 回退到上个版本
git reset --hard HEAD^
# 回退到上上个版本
git reset --hard HEAD^^
# 回退到前100个版本
git reset --hard HEAD~100
# 回退到某一个版本,搭配`git log`查看并指定版本号
git reset --hard [版本号] # 例:git reset --hard 0d69dbe
git reflog
git reflog
可以查看所有分支的所有操作记录,包括commit和reset的操作,包括已经被删除的记录,git log
则不能查看已经删除的commit记录。在误操作(误reset的时候用来回退操作非常有用)
撤销修改
修改未提交到暂存区,可以通过命令直接撤销文件的修改
git restore [file1]
# 必须加上 -- 否则会变成垃取分支
git checkout -- [file1]
远程仓库
# 查看所有的远程仓库
git remote
# 添加远程仓库
git remote add origin https://github.com/xxxx/testgit.git
# 删除远程仓库
git remote rm <远程主机名> # 例如:git remote rm origin
# 查看本地仓库跟踪的远程仓库地址
git remote -v
# 更新当前仓库的远程仓库地址
git remote # 查看远程仓库列表
git remote rm <远程主机名> # 删除当前的地址
git remote add <远程主机名> <远程仓库地址> # 重新设定远程仓库地址
将本地仓库的内容推送到远程
git push <远程主机名> <本地分支名>:<远程分支名>
#如果本地分支名和远程分支名相同,则可以省略冒号
git push <远程主机名> <本地分支名>
# 例如:以下命令将本地的master分支推送到origin主机的master分支
git push origin master # 等效于:git push origin master:master
# -u参数会把本地的master分支和远程的master分支关联起来,之后推送就可以简化命令,不用指定远程的分支
git push -u origin master
# 如果本地版本与远程版本有差异,但又要强制推送可以使用`--force`参数
git push --force origin master
# 删除远程主机的分支可以使用`--delete`参数,以下命令表示删除origin主机的master分支
git push origin --delete master
将本地仓库的分支和远程仓库关联起来
如果本地分支和远程没有做关联,在git pull
和git push
的时候就不能用简化命令操作
# 查看本地分支和远程分支的映射关系
git branch -vv
# 建立当前分支和远程分支的映射关系
git branch -u <远程主机名>/<远程分支> # 或 git branch --set-upstream-to <远程主机名>/<远程分支>
# 撤销本地分支和远程分支的映射关系
git branch --unset-upstream
Git分支管理
# 从当前的本地分支在本地创建一个新分支
git branch <分支名>
# 切换到某个分支
git checkout <分支名>
# 创建新分支并切换到该分支
git checkout -b <分支名>
# 删除本地分支,区别于上面删除远程仓库的分支操作
git branch -d <分支名>
# 合并分支
git merge
# 从远程仓库的分支垃取本地分支,并自动切换到该分支。这种方式建立的本地分支会自动和远程分支建立关联关系
git checkout -b <本地分支名>:<远程主机名>/<远程分支名>
# 从远程仓库的分支垃取本地分支,不切换到该分支。这种方式建立的本地分支不会自动和远程分支建立关联关系
git fetch <远程主机名> <远程分支名>:<本地分支名>