Git使用

git的很多命令与linux相同

创建仓库

在git所在文件夹下创建一个文件夹后,进入到该文件夹内:

mkdir test
cd test

执行命令:

git init

就将文件夹初始化了一个仓库

使用git完成流水线操作

在仓库里创建一个文件:

touch a.java

这时查看文件的状态为未被跟踪状态

然后使用命令:

git add a.java

将文件放入暂存区状态发生改变

将文件提交到仓库并说明信息:

git commit -m '测试提交'

此时如果对a.java进行编辑修改,文件会进入到修改状态,需要再次git add a.java和git commit -m '第二次提交'操作提交到仓库。

在仓库里创建一个.gitignore(注意前面有个点)文件,文件里可以写入不想被跟踪的文件。

删除操作

1.git rm 文件名
这种方式既删除版本库中的提交,也删除本地文件
2.git rm --cached 文件名
这种方式只删除版本库的提交,不删除本地文件

修改文件名称

修改已经提交到仓库的文件名

git mv 文件名 文件名

git add .

git commit -m 'rename file'

显示日志

git log

git log -p(详细信息)

git log online

修改提交

修改最近一次提交的信息

git commit --amend

管理缓存区

撤销缓存区的第一次提交

git rm --cached 文件名

与删除版本库中的提交相同

撤销已经commit的缓存区修改

git reset HEAD 文件名

恢复文件为修改前的内容

git checkout -- 文件名

分支

查看所有分支

git branch

创建分支

git branch 分支名

切换所在分支

git checkout 分支名

创建并切换到该分支

git checkout -b 分支名

在不同分支进行的操作不共享
比如在ask分支中创建的文件如果未提交,在master分支就查看不到该文件

合并分支

git merge 分支名

合并到主分支,这个过程相当于把master的指针指向被合并分支的最后一次提交

删除分支

git branch -d 分支名

查看未合并的分支

git branch --no--merged

删除未合并的分支

git branch -D 分支名

stash临时存储区

在某个分支分中,做的某些改动没有提交前不允许切换到其他分支。
此时,可以先将此分支的工作内容暂存起来:

git stash

就可以正常切换分支

再次回到此分支后使用命令:

git stash apply

恢复(后面可以指定暂存区名)

查看暂存区:

git stash list

删除暂存区:

git stash drop 暂存区名

恢复并删除:

git stash pop

使用标签声明项目阶段版本

查看

git tag

声明

git tag v1.0

将版本库打成压缩包

在要被压缩的版本库执行:

git archive master --prefix='目标文件名/' --forma=zip > 目标文件名.zip

rebase

在子分支内使用命令:

git rebase 分支名(父分支)

将子分支的建立点移动到父分支的最后的提交点,用来解决分支冲突。

远程连接

配置ssh key参考git配置及命令

公钥和私钥都在~/.ssh文件夹里,

配置好ssh后,可以在github上进行'clone with ssh'

使用git clone:

git clone git@github.com:tianqi-bucuo/Blog.git

向github提交:

git push

本地关联远程(空)仓库

git remote add origin git@github.com:tianqi-bucuo/stuManage.git

push:

git push -u origin master

本地分支与远程关联后提交:

git push --set--upstream origin 本地分支名

本地分支与远程分支关联:

git pull origin 远程分支名:本地分支名

与远程分支的合并

把远程master更新到最新状态:

git pull

git rebase master

切换到master后:

git merge 分支名

git push

删除远程分支

git push origin --delete 远程分支名

02-12 18:10