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
设置远程库的引用

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐