Git原生工具gitbash使用提交代码

Git原生工具gitbash使用提交代码

一. Git下载、安装
官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/
二. Git配置

$ git config --system		//读写"/etc/gitconfig"文件,配置对系统中的所有用户生效
$ git config --global		//读写"~/.gitconfig"文件,是用户目录下的配置,只适用于该用户
  1. 用户信息
$ git config --global user.name "xxx"				//配置用户名
$ git config --global user.email "123456@qq.com"	//配置邮箱
  1. 查看配置信息
$ git config --list

△ 如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。

△ 如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

三.几个命令
常用命令整理
(1) 创建仓库命令

命令说明
git init初始化仓库
git clone拷贝一份远程仓库,也就是下载一个项目。

(2) 提交与修改

命令说明
git add添加文件到仓库
git status查看仓库当前的状态,显示有变更的文件。
git diff比较文件的不同,即暂存区和工作区的差异。
git commit提交暂存区到本地仓库。
git reset回退版本。
git rm删除工作区文件。
git mv移动或重命名工作区文件。
  1. 【add】命令
    当对工作区修改(或新增)的文件执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。
$ git add [file1] [file2] ...			//添加一个或多个文件到暂存区
$ git add [dir]						//添加指定目录到暂存区,包括子目录
$ git add .							//添加当前目录下的所有文件到暂存区

△ 当执行 git reset HEAD 命令时,暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
△ 当执行 git rm --cached < file > 命令时,会直接从暂存区删除文件,工作区则不做出改变。
△ 当执行 git checkout . 或者 git checkout – < file > 命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
△ 当执行 git checkout HEAD . 或者 git checkout HEAD < file > 命令时,会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

$ git status -s		//通常我们使用 -s 参数来获得简短的输出结果:
AM README			//AM代表有未add的修改
A  hello.php		//A代表修改都已add

注:
尚未缓存的改动: git diff
查看已缓存的改动: git diff --cached
查看已缓存的与未缓存的所有改动: git diff HEAD
显示摘要而非整个 diff: git diff --stat

$ git diff [file]							//显示暂存区和工作区的差异
$ git diff --cached [file]	 				//显示暂存区和上一次提交(commit)的差异
(或  $ git diff --staged [file])
$ git diff [first-branch]...[second-branch]	//显示两次提交之间的差异
  1. 【commit】命令
    当执行提交操作(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
    开始前我们需要先设置提交的用户信息,包括用户名和邮箱:
$ git config --global user.name 'xxx'
$ git config --global user.email test@qq.com

注:如果去掉 --global 参数只对当前仓库有效。

git commit -m [message]
$ git commit [file1] [file2] ... -m [message]

注:如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。

  1. 【init】命令
    Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。
$ git init projectName		//在当前目录创建文件夹“projectName”,文件夹中会带有一个隐藏的.git文件夹

所有 Git 需要的数据和资源都存放在这个目录中。
如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'
  1. 【clone】命令
    我们使用 git clone 从现有 Git 仓库中拷贝项目(类似 svn checkout)。
$ git clone <repo> <directory> <newName>

repo:Git 仓库。
directory:本地目录。(可不写,就是当前打开gitbash的目录)
newName:还可以使用自定义的项目名称(指定新的名称)

  1. 【reset】命令
    git reset 命令用于回退版本,可以指定退回某一次提交的版本。
命令语法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]

注:–mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

实例
$ git reset HEAD^            //# 回退所有内容到上一个版本  
$ git reset HEAD^ hello.php  //# 回退 hello.php 文件的版本到上一个版本  
$ git  reset  052e           //# 回退到指定版本

$ git reset --soft HEAD		 //--soft 参数用于回退到某个版本

$ git reset –hard HEAD~3  # 回退上上上一个版本  
$ git reset –hard bae128  # 回退到某个版本回退点之前的所有信息。 
$ git reset --hard origin/master    # 将本地的状态回退到和远程的一样 

注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

HEAD 说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本
  • 以此类推…

可以使用 ~数字表示

  • HEAD~0 表示当前版本
  • HEAD~1 上一个版本
  • HEAD^2 上上一个版本
  • HEAD^3 上上上一个版本
  • 以此类推…
  1. 【rm】命令
    git rm 命令用于删除文件。
git rm runoob.txt 			//从暂存区和工作区中删除 runoob.txt 文件
git rm -f runoob.txt 		//强行从暂存区和工作区中删除修改后的 runoob.txt 文件
git rm --cached runoob.txt	//从暂存区中删除 runoob.txt 文件(工作区保留)
  1. 【mv】命令
    git mv 命令用于移动或重命名一个文件、目录或软连接。
$ git mv [file] [newfile]		
$ git mv -f [file] [newfile]	//如果新但文件名已经存在,但还是要重命名它,可以使用 -f 参数:
  1. 【remote】命令,远程仓库操作
$ git remote -v		//显示所有远程仓库
$ git remote show https://github.com/tianqixin/runoob-git-test	//显示某个远程仓库的信息
git remote add [shortname] [url]		//添加远程版本库
# 提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master
$ git remote rm name  # 删除远程仓库
$ git remote rename old_name new_name  # 修改仓库名

origin 为远程地址的别名。

  1. 【fetch】命令,从远程获取代码库。
$ git fetch //命令用于从远程获取代码库。
$ git merge	//尝试合并到当前分支(紧随fetch之后)
  1. 【pull】命令,用于从远程获取代码并合并本地的版本

其实就是 git fetch 和 git merge FETCH_HEAD 的简写。

git pull <远程主机名> <远程分支名>:<本地分支名>

注:需要cd到对应项目clone后的文件夹内,才能pull

$ git pull origin master:master。
  1. 【push】命令,git push 命用于从将本地的分支版本上传到远程并合并。
git push <远程主机名> <本地分支名>:<远程分支名>
git push <远程主机名> <本地分支名>				//如果本地分支名与远程分支名相同,则可以省略冒号
$ git push origin master	等价于	$ git push origin master:master
git push --force origin master				//使用 --force 参数强制推送
git push origin --delete master				//删除 origin 主机的 master 分支

四. 分支管理

git branch (branchname)			//创建分支
git checkout (branchname)		//切换分支
git merge 						//合并分支
git branch						//没有参数时,git branch 会列出你在本地的分支
git checkout -b (branchname) 	//创建新分支并立即切换到该分支下,从而在该分支中操作
git branch -d (branchname)		//删除分支命令
git merge						//将任何分支合并到当前分支中去
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值