常见命令
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。
创建仓库
初始化:
git init
下载项目:
git clone [url]
#例如
git clone https://github.com/tianqixin/runoob-git-test
提交与修改
添加:
git add [file1] [file2] ... #添加文件
git add [dir] #添加目录
git add . #添加所有文件
查看仓库文件修改状态:
git status
git status -s #输出简短结果
比较暂存区与工作区文件差异
git diff [file]
git diff --cached [file] #显示暂存区和上一次提交(commit)的差异
git diff [first-branch]...[second-branch] #显示两次提交之间的差异
提交
git commit -m [message] #[message]可以是一些备注信息
git commit [file1] [file2] ... -m [message]
git commit -a #-a参数设置修改文件后不需要执行git add命令,直接来提交
回退版本
git reset [--soft | --mixed | --hard] [HEAD]
#--soft参数为某个版本,--mixed默认参数,可以不写,--hard参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交,谨慎使用。HEAD表示当前版本,HEAD^表示上一个版本,HEAD^……表示上上一个版本,以此类推,也可用数字表示,例如,HEAD~1 上一个版本,HEAD^2 上上一个版本
git reset [HEAD]
git reset HEAD^ # 回退所有内容到上一个版本
git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本
git reset –hard HEAD~3 # 回退上上上一个版本
git reset –hard bae128 # 回退到某个版本回退点之前的所有信息。
git reset --hard origin/master # 将本地的状态回退到和远程的一样
删除工作区间文件
git rm <file>
git rm runoob.txt
git rm -f runoob.txt #强行从暂存区和工作区中删除修改后的 runoob.txt 文件
git rm --cached <file> #把文件从暂存区域移除,但仍然希望保留在当前工作目录中
git rm --cached runoob.txt
git rm –r * #递归删除整个目录中的所有子目录和文件
移动或重命名工作区文件
git mv [file] [newfile] #移动
git mv -f [file] [newfile] #重命名
查看日志
git log #查看历史提交记录
git blame <file> #以列表形式查看指定文件的历史修改记录
远程操作
仓库操作
git remote -v #显示所有远程仓库
git remote show [remote] #显示某个远程仓库信息
git remote show https://github.com/tianqixin/runoob-git-test
git remote add [shortname] [url] #添加远程版本库,shortname为本地的版本库
git remote add origin git@github.com:tianqixin/runoob-git-test.git
git push -u origin master #提交到github
git remote rm name # 删除远程仓库
git remote rename old_name new_name # 修改仓库名
从远程获取代码库
git fetch [alias] #从远程获取代码库
git merge [alias]/[branch] #远程分支到你所在的任意分支
下载远程代码并合并
git pull 其实就是 git fetch 和 git merge FETCH_HEAD 的简写。
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin #更新操作
git pull origin master:brantest #将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并
git pull origin master #如果远程分支是与当前分支合并,则冒号后面的部分可以省略
上传远程代码并合并
git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名> #如果本地分支名与远程分支名相同,则可以省略冒号
git push origin master:master
git push origin master #将本地的 master 分支推送到 origin 主机的 master 分支
git push --force origin master #如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数