Git常用命令记录
初始化一个未使用git进行版本控制的项目
git init
工作区、暂存区和版本库
工作区提交暂存区
提交单个文件
git add file_name
提交当前项目的所有文件
git add -A
删除版本库中的文件
该文件在工作区已被删掉,想要再版本库中也删除,commit之后删除生效
git rm file_name
查看当前工作区和暂存区状态
git status
把暂存区的内容提交到版本库
-m后面跟本次提交的描述信息
git commit -m "description"
撤销本地未暂存和提交的某个文件的修改
git checkout -- file_name
撤销本地未暂存和提交的所有修改
git checkout .
丢弃工作区的修改,从暂存区中恢复
git restore --worktree file_name
丢弃工作区的修改,从版本库恢复
git restore --staged file_name
清除工作区未跟踪文件以及空的子目录
git clean -d
强制清除工作区未跟踪文件以及空的子目录
git clean -f -d
比较工作区和暂存区
也就是找到当前已做修改,但为暂存的文件
git diff
储藏当前工作区
当工作区有修改,但是由于没修改完等原因,暂时不想提交,但是想进行切换分支等操作的时候,工作区内不能有文件,因此可以用改命令先把工作区储藏起来
git stash
查看储藏的工作区
git stash list
恢复工作区并删除stash内容
git stash pop
恢复工作区
git stash apply
删除stash内容
git stash drop
分支
查看所有分支
当前所在分支前面会有*
git branch
创建并切换分支
git checkout -b branch_name
创建分支
git branch branch_name
切换分支
git checkout branch_name
合并指定分支到当前分支
git merge branch_name
删除分支
要删除的分支已合并,可以利用该命令进行删除
git branch -d branch_name
强制删除分支
要删除的分支未合并,无法删除,可以使用该命令进行强制删除
git branch -D branch_name
重命名本地分支
git branch -m old_branch_name new_branch_name
远程仓库
本地项目和远程仓库建立连接
origin为自己指定的远程仓库的名字,一般设为origin,后面跟远程仓库的地址
git remote add origin git@github.com:michaelliao/learngit.git
远程仓库
查看远程仓库
git remote -v
删除远程仓库
depository_name是远程仓库名
git remote rm depository_name
添加远程仓库
关联已有的本地仓库和github仓库:depository_name是远程仓库名,depository_address是远程仓库地址
git remote add depository_name depository_address
将token添加到远程仓库链接中
无须密码,避免每次提交都要输入token
depository_address是远程仓库地址加上token:https://token@github.com/~.git
git remote set-url depository_name depository_address
pull代码
克隆远程代码到本地
git clone github_address
查看远程仓库
git remote
显示可以push或pull的远程分支
如果没有push权限,就看不到push的分支
git remote -v
更新远程分支列表
origin是默认的远程仓库名
git fetch origin --prune
pull远程代码到本地
origin是默认的远程仓库名,可进行修改
如果存在冲突,merge失败,可以手动解冲突,然后commit
git pull origin remote_branch_name
把远程的分支pull到本地不存在的新分支
自动创建本地的新分支,与远程分支关联起来
git checkout -b local_branch_name origin/remote_branch_name
强制pull,覆盖本地的当前分支
origin是默认的远程仓库名,可进行修改
git pull origin remote_branch_name --force
push代码
本地代码push到远程
origin是默认的远程仓库名,可进行修改
一般在push到远程分支前,可以把远程的代码pull下来和本地分支进行合并,确保没有冲突,然后再push;
git push origin remote_branch_name
push到远程域原来不同的新分支
origin是默认的远程仓库名,可进行修改
git push origin local_branch_name:remote_branch_name
强制提交本地分支覆盖远程分支
origin是默认的远程项目名,可进行修改
git push origin remote_branch_name --force
关联已有的本地仓库和github仓库
origin为默认显示的远程仓库名,可进行修改
git remote add origin github_address
远程仓库为空,进行第一次push
origin为默认显示的远程仓库名,可进行修改
第一次push的时候使用-u参数,会把本地分支和远程分支关联起来,以后就可以不用该参数了
git push -u origin remote_branch_name
删除远程分支
origin为默认显示的远程仓库名,可进行修改
确定的确需要删除远程分支
git push origin --delete remote_branch_name
报错及解决办法
报错1:fatal: remote error: You can’t push to git://github.com/xiangxiangtao/HTCN.git Use https://github.com/xiangxiangtao/HTCN.git
解决办法:
gedit .git/config
版本控制
查看版本库的commit记录
输入q退出
git log
查看所有操作的命令以及版本号信息
包含未来的版本,如果有进行回退的话
git reflog
回退到上一个commit版本
git reset --hard HEAD^
切换到指定commit版本
查看未来的版本号后,可以使用该命令回退到未来
git reset --hard commit_id
.gitignore
忽略ignore_folder文件夹下的所有内容,在上传远程仓库时保留空文件夹
在文件夹下新建.gitkeep文件
在.gitignore文件内写入
ignore_folder/*
!ignore_folder/.gitkeep
[1]:廖雪峰Git教程