git常用命令
2018-01-04 18:58
387 查看
git克隆命令,免交互:
$ git clone http://username:password@127.0.0.1/res/res.git[/code]gitlab通过token克隆:
git clone https://<username>:<private-token>@gitlab.anydomainhere.com/developers/<projectname>.git 例: $ git clone http://liuyongzhan:wynkBcMfqfpQVMBVrxRs@192.168.30.45/liuyongzhanTest/liuliuliu.git $ git config --global user.name "liuyongzhan"//给自己起个用户名 $ git config --global user.email "liuyongzhan@opssino.com"//填写自己的邮箱 $ git config --global gitlab.user liuyongzhan $ git config --global gitlab.token wynkBcMfqfpQVMBVrxRsgit通过ssh协议克隆代码:
1.本地生成ssh秘钥:ssh-keygen -t rsa
说明:
a.直接敲3次回车
b.第一次回车表示key文件放在默认的路径下,默认key放在家目录下;也可不回车,输入指定的存放目录。
c.第二和第三次回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。这个设置是防止别人往你的项目里提交内容。
2.在github/gitlab上添加ssh公钥:cat /root/.ssh/id_rsa.pub
复制公钥文件的内容到github上(Settings–>SSH Keys–>Add key),title随意
3.测试认证是否成功:ssh -T git@192.168.30.45
4.可以通过ssh协议克隆代码了:git clone git@192.168.30.45:liuyongzhanTest/liuliuliu.git注意:
git clone命令的内容会在错误输出里:此为正常现象Cloning into 'liuliuliu'...
当git仓库为空的时候,第一次在本地库目录执行git pull命令会报一个错误输出:此为正常现象Your configuration specifies to merge with the ref 'refs/heads/master' from the remote, but no such ref was fetched.git全局配置和单个仓库的用户名邮箱配置
配置全局的用户名和邮箱$ git config --global user.name "github's Name" $ git c 4000 onfig --global user.email "github@xx.com" $ git config --list
如果你公司的项目是放在自建的gitlab上面, 如果你不进行配置用户名和邮箱的话, 则会使用全局的, 这个时候是错误的, 正确的做法是针对公司的项目, 在项目根目录下进行单独配置$ git config user.name "gitlab's Name" $ git config user.email "gitlab@xx.com" $ git config --list
git config –list
查看当前配置, 在当前项目下面查看的配置是全局配置+当前项目的配置, 使用的时候会优先使用当前项目的配置git log相关:
根据需求号去log里筛选文件对应的版本号:$ git log --pretty=format:"%h,%an,%at,%s" --grep "^AC-1\s" uat -- b780869,liuyongzhan,1514259242,AC-1 add 1
git日志倒序:$ git log --reverse
git 通过版本号,查出对应文件的修改状态:不需要加分支名:$ git log c7f9ccc -n 1 --pretty=format: --name-status M 3.txt A 5.txt
获取最后一次版本号,用以冲突时进行回退:git log -n1 --pretty=format:%hgit创建分支
关于创建分支:
git在本地创建uat分支,推到远程去,要执行3步:git branch uat git push origin uat:uat git branch --set-upstream-to=origin/uat uatgit多种撤销
回退到指定版本:git reset --hard 271eb04
撤销暂存区中某个文件的修改:(那么该文件的修改会回到工作区)git reset HEAD 1.txt
撤销工作区中某个文件的修改:git checkout -- 1.txt清空untracked file:
删除 untracked filesgit clean -f
连 untracked 的目录也一起删掉git clean -fd
连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)git clean -xfd
在用上述 git clean 前,强烈建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删git clean -nxfd git clean -nf git clean -nfdgit合并代码
摘樱桃:$ git cherry-pick 53c99db c771517
合并某分支到当前分支:$ git merge master --no-ff --no-commit 说明: --no-ff:合并时会产生一个新的commit节点。在删除源分之后,目标分支的合并信息仍然被保留,在以后的代码分析中可以便捷的查看到历史信息,而fast forward方式则无法辨识代码的合并信息。 --no-commit:参数使得合并后,为了防止合并失败并不自动提交,能够给使用者一个机会在提交前审视和修改合并结果。git查看状态
merge/cherry-pick/revert的时候,可以通过git status -s命令查看文件修改状态:$ git status -s UD 1.txt M 6.txt A 7.txt UU 新建文件夹/10.txt A 新建文件夹/11.txt
git status中文编码问题:$ git status -s AA "\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/10.txt"
转为可识别编码:$ git config --local core.quotepath false $ git status -s AA 新建文件夹/10.txt例:git整分支合并
克隆: git clone http://liuyongzhan:liuyongzhan@192.168.xxx.xxx/liuyongzhanTest/liuliuliu.git 切换分支: git checkout <name> 合并某分支到当前分支: git merge master --no-ff --no-commit 提交前的查看合并结果: git status -s 冲突时,终止merge: git merge --abort 提交合并: git commit -m "整分支合并" 推送到远程库: git push --set-upstream origin <branchName>
相关文章推荐
- git commit 回滚上一次的提交 等等一些常用命令
- Git上传代码到Github的常用命令操作(精简版)
- 老司机带你玩转git(三)git常用命令以及注意事项
- Git常用命令(持续更新中。。。)
- Git常用命令解说
- Git常用操作命令
- git常用命令备忘录
- Git学习笔记(几个常用的命令 及 版本回退)
- Git常用命令以及常见问题
- GIT常用命令 && GIT本地使用 && GIT报错解决 && GIT的忽略文件(ignore files)
- git入门及常用命令
- Git 常用命令
- Git常用命令
- Git常用命令总结
- 常用git命令
- GIT常用命令清单
- Git常用命令整理
- git常用命令
- Git常用命令
- git 常用命令(含删除文件)