GIT基本命令

【初始化】
建立一个本地的git仓库,建立以后就会在当前目录生成一个.git的文件
git init   # 初始化本地版本库
git clone <url>   #从远程克隆代码到本地,url是远程代码地址
 
【拉取git远程仓库的文件】
git pull   # 拉取远程仓库代码
 
【查看文件状态】
git status   #查看文件状态(经常使用)
git status -s   #以极简形式查看文件状态
A:本地新增的文件(服务器上没有)
C:文件的一个新拷贝
D:本地删除的文件(服务器上还在)
M:红色为修改过未被添加进暂存区的,绿色为已经添加进暂存区的
R:文件名被修改
T:文件的类型被修改
U:文件没有被合并(你须要完成合并才能进行提交)
X:未知状态(极可能是遇到git的bug了,你能够向git提交bug report)
?:未被git进行管理,可使用git add fileName把文件添加进来进行管理
 
【提交文件】
git add .   #将全部改动过的文件添加到缓存区
git add <file>   #跟踪指定的文件(或文件夹),file是文件夹地址或者文件地址
git commit -m '提交信息'   #将暂存区的修改提交到本地仓库,同时会生成一个commmit-id
git push   #推送代码到默认的分支
git push origin <branch>   #推送代码到指定的分支下,branch是分支名
 
【分支命令】
$ git branch   #查看分支
$ git branch test-1   # 建立分支(分支名为test-1
git checkout [name]   #切换分支
git branch -d [name] 【强制删除使用大写字母D】   # 删除本地分支
$ git push origin :origin-test-1   #删除远端项目分支(origin-test-1为分支名)
git branch -r   # 查看远端分支
$ git branch -v   #查看分支最后一次提交的commit id
 
【经常使用git stash命令】
git stash save "save message"    #执行存储时,添加备注,方便查找,只有git stash 也要能够的,但查找时不方便识别。
git stash list    #查看stash了存储栈
git stash show   #显示作了哪些改动,默认show第一个存储,若是要显示其余存贮,后面加stash@{$num},好比第二个 git stash show stash@{1}
git stash show -p   # 显示第一个存储的改动,若是想显示其余存存储,命令:git stash show  stash@{$num}  -p ,好比第二个:git stash show  stash@{1}  -p
git stash apply   #应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},若是要使用其余个,git stash apply stash@{$num} , 好比第二个:git stash apply stash@{1} 
git stash pop :命令恢复以前缓存的工做目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工做目录下,默认为第一个stash,即stash@{0},若是要应用并删除其余stash,命令:git stash pop stash@{$num} ,好比应用并删除第二个:git stash pop stash@{1}
git stash drop stash@{$num} :丢弃stash@{$num}存储,从列表中删除这个存储
git stash clear :删除全部缓存的stash
 

 
命令执行后视图了解:
git status #查看文件状态
-- 红色表示没有提交到缓存区的文件:
Untracked files:未追踪的文件;
Changes not staged for commit :已追踪,但修改后未add到暂存区的文件
-- 绿色区域表示已经提交到暂存区的文件。
 
git commit -m '提交信息' #将暂存区的修改提交到本地仓库,同时会生成一个commmit-id
[zjsecurity-fix b04254e] zjsecurity-fix为分支名,b04254e 为 commmit-id
 
使用情境:
情境1:首次推送代码至远程仓库
// 在本地项目文件夹中,初始化本地git仓库
$ git init

// 添加项目全部文件至暂存区
$ git add *

// 编辑提交备注
$ git commit -m 'first commit'

// 链接远程github仓库
$ git remote add origin <url>

// 推送到远程仓库(这个过程须要填写用户名和编码)
$ git push -u origin master

 情境2 :先拉取远程更新内容,在提交本地修改html

// 先拉取远程代码(若是拉取以后有冲突,手动在本地修改冲突)
git pull

// 查看本地修改的文件
git status

// 选择须要提交的文件
//  “src/main/java/com/fline/zjsecurity” 是须要提交的是文件夹
git add src/main/java/com/fline/zjsecurity/

// 提交内容描述
// git commit -m '提交描述'
git commit -m '数据识别规则模板类型信息处理'

// 提交修改的代码到指定分支
// zjsecurity-fix 为分支名
git push origin zjsecurity-fix

 情境四:首次拉取代码时发生报错 fatal: Not a valid object name: 'master'.java

11905625546@DESKTOP-TOKFC65 MINGW64 /d/Eclipse/gzt_ybtx (master)
$ git branch  release-for-gzt
fatal: Not a valid object name: 'master'.
报错缘由:
由于当前没有master分支,经过git branch会发现,没有任何输出结果。
解决方法:
git 进行一次提交,代码会提交到master分支上,这时在本地仓库也会建立一个master分支;
或者
git pull <url> <分支名> 在本地会优先建立一个master分支来存储当前代码。
 
 
 
 欢迎转载,转载请注明出处 http://www.noobyard.com/article/p-nyaohwxl-by.html