1、本地项目仓库的初始化
git init
2、从远程clone下来
# 从服务器上将代码给拉下来
git clone git://gitee.com/allen.huang/git-test.git
3、git branch相关
git branch <branch_name> # 创建分支
git branch -a # 查看本地所有分支
git branch -r # 查看远程所有分支
# 删除branchName的分支,如果该分支未提交未进行合并,则会删除失败。
git branch -d <branchName>
# 强制删除一个名字为branchName 的分支。如果该分支未提交未进行合并,也会删除成功
git branch -D <branchName>
# 设置当前分支的默认上游为 origin的master分支
git branch --set-upstream-to=origin/master
4、查看当前的修改状态
git status
5、git add相关
# 添加一个文件到git index
git add [file name]
# 使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified),删除(delete)以及新文件(new)
git add .
# 将已经在版本库中的,只做修改内容的文件进行提交,(git add --update的缩写)
git add -u
# 将所有的新增的操作都提交到暂存区,(git add --add的缩写)
git add -A
6、git commit相关
# 提交所有文件到版本库,-a表示先提交到暂存区,-m表示提交信息
git commit -am "内容修改提交"
# 当你用-v参数的时候可以看commit的差异
git commit -v
# 添加commit信息
git commit -m "提交信息"
# 先提交到暂存区,并看出commit的差异,再提交到版本库
git commit -a -v
7、git remote相关
git remote add origin <远程Git仓库地址>
# 例子
git remote add origin git@gitee.com:allen-huang/java-mq-study.git
# 显示远程库的资源信息
git remote show origin
8、将文件推送到服务器的远程分支
# 将文件推送到远程的master
git push origin master
# 将develop合并到master分支,并推送到远程
git push origin develop:master
# 将hb-dev合并到master分支,并推送到远程
git push origin hb-dev:master
9、git checkout的使用
git checkout master # 切换到本地master分支
git checkout -b dev # 建立一个新的本地分支dev
git checkout --track origin/dev # 切换到远程dev分支
git checkout -- <filename> # 把工作区的修改的文件进行还原,如果在暂存区了,也可以还原
# 放弃所有文件的修改,对于刚新建的文件不会删除文件,对于已经add过的文件才生效
git checkout .
# 放弃所有本地文件的修改,只要没有commit的都会被放弃
git checkout -f
10、git rm的使用
# 会删除工作区中的文件;
git rm [filename]
# 删除文件(只从暂存区中删除,保留本地物理文件)
git rm --cached [file_name]
# 删除目录(只从暂存区中删除,保留本地物理目录)
git rm --cached -r [dir_name]
# 强行移除修改后文件(从暂存区和工作区中删除)
git rm -f [file_anme]
1.git rm 会同时将删除的文件添加到暂存区;
【因此 git rm 相当于 rm + git add 两个命令】
【注意】 git rm 删除的文件必须是 没有经过修改的,也就是说必须要和当前版本库的内容一致的。
2.git commit 后,版本库中的此文件记录也会被删除。
11、查看版本库文件列表
git ls-files
12、git log相关
# 看你commit的日志
git log
# 以图形化显示git日志的记录
git log --graph --pretty=oneline --abbrev-commit
# 查看所有的提交
git reflog
# 查看日志id
git show logid
# 查看提交id信息
git show commintid
13、git merge相关
# 将分支master分支合并到当前分支
git merge origin/master
14、git fetch相关
# 相当于是从远程获取最新版本到本地,不会自动merge;
# 像远程创建了其他分支,就可以使用这个命令
git fetch orgin
15、git pull相关
# 这个命令的意思是将当前分支的更新从远程仓库orgin的master分支拉取下来,
# 并设置当前分支的默认上游为orgin的master分支。
git pull --set-upstream orgin "master"
# 当前分支与服务器端同步,都是同一个分支下
git pull origin
# 将远程主机 origin 的 master 分支拉取过来,与本地的dev-hjc分支合并。
git pull origin master:dev-hjc
16、git push相关
# 当前分支推送到服务器端,都是同一个分支下的
git push origin
# 推送并设置上游分支,以后可以直接使用git push和git pull
git push -u origin <branch-name>
# 删除远程分支:
git push origin --delete <branch-name>
# 设置推送的远程的上游分支,以后可以直接使用git push和git pull
git push --set-upstream origin <branch-name>
# 推送标签到远程仓库:
git push --tags
17、git config相关
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list
#查看当前仓库配置信息
git config --local --list
注意:对于同一配置项,三个配置文件的优先级是1<2<3
# 设置用户名与邮箱(用户标识,必要)
git config --global user.name "用户名" #名称
git config --global user.email "邮箱" #邮箱
18、git restore相关
# 还没进入暂存区,并还原到最原始的状态,在add操作之前使用。
git restore <filename>
# 将暂存区的文件状态还原不会改变内容,在add操作之后,commit之前使用
git restore --staged <filename>
# reset是表示已经commit到版本库了,需要还原历史版本。
git reset HEAD <filename>
# 根据logid来进行还原
git reset --hard logid
# 版本还原保留最近修改
git revert -n logid -m "版本还原"
19、git stash相关
# 当我们在单独拉取的功能分支中开发时,生产线上遇到bug需要紧急修复,我们需要先切换到master分支
# 从master创建hotfix分支进行代码修复前,把当前分支的代码暂存起来,不然当前的修改就会丢失
# 这时候git stash就起作用了,我们可以用stash push先把未提交的给暂存起来。
# 代码修复后,tash pop命令将之前最近一次储藏的修改取出来,继续之前的工作,并同时将该储藏从储藏记录列表中删除
# 将文件给push到一个临时空间中
git stash push
# 将文件从临时空间pop下来
git stash pop
20、创建本地仓库推送到远端的完整过程
# 本地初始化仓库
mkdir WebApp && cd WebApp
git init
# 提交本地文件到版本库
touch README
git add README 添加文件
git commit -m 'first commit'
# 将本地仓库和远端关联
git remote add origin git@github.com:allen.huang/WebApp.git
# 设置推送的远程的上游分支,以后可以直接使用git push和git pull
git push --set-upstream origin <branch-name>