Git使用
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 --oneline
修改提交
修改最近一次提交的信息
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
本地关联远程(空)仓库
git remote add origin(给远程仓库起的别名) git@github.com:tianqi-bucuo/stuManage.git
推送:
git push [远程仓库别名] [远程仓库某个分支名]
例如:git push origin master
如果push失败,先将远程同步到本地:
git pull origin 远程分支名(如master)
,
如果上面的命令失败:
git pull origin master --allow-unrelated-histories
同步后重新push
(本地分支与远程关联后推送:
git push --set--upstream origin 本地分支名
)
与远程分支的合并
把远程master更新到最新状态:
git pull
git rebase master
切换到master后:
git merge 分支名
git push
删除远程分支
git push origin --delete 远程分支名