Git使用及说明
Git使用
创建git:
创建本地库
touch readme.txt
git init
get add ./
git commit -m "first commit"
git init 在目录下创建.git目录,该子目录含有初始化Git目录所须的所有文件
关联远程库
git remote add origin https://github....git
git push -u origin master
git remote add 关联远程仓库,远程仓库名字为origin,也可以为其他的
git push 将本地仓库推送至远程仓库
克隆git
git clone https://github....git
git clone 从远程主机克隆出一个版本。git clone <版本库网址> <本地目录名>
添加文件
touch 1.txt
git status -s
git add 1.txt
git status -s
git commit -m "reason"
git push
git pull
git log
git status 查看没有被git管理的文件和被git管理且被修改还未提交的文件信息。上面代码中,第一个git status -s 会显示
?? 1.txt
第二个git status -s 会显示
A 1.txt
git add 将文件添加到暂存区,如若撤销
git reset Head 1.txt
git commit -m 将暂存区内容提交到分支上,如若撤销
同时删除本地仓库文件
git rm 1.txt
git commit -m "delete"
不删除本地文件
git rm --cached 1.txt
git commit -m "delete"
git commit 会彻底删除库里文件,慎用
git push 将修改push到git服务器
git pull 从服务器pull代码,更新
修改文件
与添加文件相同
git add
git commit -m ""
git push
git pull
git log
已提交至暂存区,撤销修改
git checkout -- 1.txt
分支操作
git branch
git branch branch1
git checkout branch1
git merge branch1
git branch -d branch1
功能依次为查看分支,创建分支,切换分支,合并分支,删除分支
-d 如果分支未合并到主分支会报错
-D 则强制删除
补丁操作
生成补丁
git format-patch 4e16
git format-patch 365a..4e16
git format-patch –n 07fe
依次为:
生成某次提交以后的补丁
生成两次提交之间的所有补丁
生成提交(含)之前的几次提交补丁
合并补丁
git apply --stat newpatch.patch
git apply --check newpatch.patch
git am --signoff < newpatch.patch
依次为:
先检查补丁文件
检查能否应用成果
打补丁
标签操作
创建标签
git tag -a "Release_1" -m "comment" HEAD
查看标签
git tag -l
git show Release_1
依次为:
查看标签
查看标签细节
删除标签
git tag -d Release_1
删除操作
git rm 1.txt
从git仓库中删除
git rm -r folder
删除folder文件夹
git rm -cached 1.txt
从暂存区删除
其他操作
重命名
git mv 1.txt 2.txt
移动
git mv 1.txt src/1.txt
Git详细
git reset:
回退到某一个commit,有三个参数-soft -mixed(默认) -hard
-soft 只回退HEAD(库),暂存区和工作区不变
-mixed 回退HEAD(库)和暂存区,工作区不变
-hard 所有都改变
git revert:
生成一个新的commit来撤销某次提交
与reset的区别为,reset的提交之前的commit都还保留,之后的会被退回到暂存区 ,而revert的所有commit都会被保留
远程分支操作相关
跟踪远程分支
git checkout -b <本地分支名> origin/<远程分支名>
git fetch origin <远程分支名>:<本地分支名>
与checkout不同的是,fetch会新建分支,但不会立刻跳转到新建的分支上
git pull
git pull <远程主机名> <远程分支名>:<本地分支名>
取回远程主机某个分支,与本地指定的版本进行合并。类似于fetch+merge
git fetch
更新git-remote中所有远程分支的最新commit-id,记录到本地 .git/FETCH_HEAD文件中
git fetch repo 更新repo上所有分支的commit id
git fetch repo remote_branch 更新该branch上的commit id
git fetch repo remote_branch:local_branch 更新的同时在本地建立分支
FETCH_HEAD: 一个版本的链接,存储在本地,指向远程仓库的末端版本
git push
git push <远程主机名(通常origin)> <本地分支名>:<远程分支名>
例: git push origin master 将本地的master分支push到远程的master分支
git push origin :master 相当于删除远程分支,切忌误操作
关于git ref
git ref的引用主要有三个:HEAD, Tags,Remote
HEAD:可以通过 cat .git/HEAD查看当前分支的head
Tags:
更新tag号的方法:git update-ref refs/tags/v1.0.1 xxxx(SHA码)
新建tag的时候加-a会自动生成tag的ref
Remote:
git remote add origin git@xxxxxxxx.git
设置远程库的引用