首页 > 代码库 > git常用命令汇总
git常用命令汇总
1、了解环境变量
/etc/gitconfig""""
.gitconfig
2、设置身份""
git config --help
git config --global user.name “lizihao”
git config --global user.email lizihao@shiqichuban.com
git config --unset --global user.name "haoge"
3、检查本地git配置:
git config --list
4、设置编辑器
git config --global core.editor emacs
5、设置比较工具
git config --global merge.tool vimdiff
6、将目录设定为git本地工作目录
git init
7、将本地文件添加到git管理系统
git add
8、将本地临时存储空间中的文件提交到本地仓库:
git commit -m "add hello.py"
9、将远程仓库克隆到本地
git clone git://……
10、git remote 查看远程版本库
git remote -v 查看远程库的信息,包括名称和地址
11、查看当前各文件的状态
git status
12、若想某文件不被git系统控制,可以加入到.ignore文件中
13、git diff 比较工作目录中的文件与本地缓存staged area
git diff --cached 比较本地临时存储空间与本地local repo
14、git mv hehe.txt lala.txt 对于已经add的文件,需要通过git mv来改名,将索引区和本地文件一并改名为lala.txt,如果之前已经commit到stage,则git mv后还需要commit一个rename操作
git rm -f hehe.txt 对于已经add到stage的文件,只是在本地磁盘和索引区被删除掉了,如果文件已经被commit,git rm 删除后,还需要commit这个delete的操作将stage中的文件也删除;
git rm --cached test.txt 可以将暂存区stage中的文件删除,本地不删除
git status 会提示有hehe.txt文件删除状态
此时有两个选择,
git push 提交删除将远程仓库中的这个文件也一并删除
git reset 从stage中撤销到index中,即reset可以撤销git add的操作
git checkout -- hehe.txt 从index中再检出这个文件到本地
15、用SHN1加密字符来标识git的版本号
16、git log 查看有哪些提交操作,add操作不记录,commit操作才记录
git log --oneline 提交操作日志一行展示,没有很多的描述性信息
git whatchanged 查看有哪些改变
空格键是向下翻页
w键是向上翻页
q键是退出
17、git pull origin 是将远程库的数据拉取到我本地并与我的本地仓库合并
git push origin master 是将我本地commit的操作推送同步到远程仓库
有时候没有权限直接push远程仓库的master分支,可以git format-patch origin master 将所有的修改都打成补丁,通知仓库管理员审核,通过后直接生效;
git fetch origin 是将远程库的数据拉取到我本地但不与我本地仓库合并,而是建立新的分支
18、git branch 查看当前所处的分支,也能确定当前处于哪个分支
git branch --list 列出所有的分支,同git branch一样
git branch zengbin 创建新的分支zengbin
git checkout zengbin 切换分支到zengbin
git show-branch 查看当前分支与其他分支的不同
git diff master zengbin 查看两个分支的不同
19、合并--merge
git merge "merge zengbin to master" HEAD zengbin
将zengbin这个分支合并到当前的master分支
20、git commit -a -m "xxxx"
git commit -a是把unstaged的文件变成staged(这里不包括新建(untracked)的文件),然后commit,
一般都不推荐使用git commit -a,还是推荐先git add再git commit。
21、两个分支如果修改了同一个文件,在merge两个分支时会报冲突;
解决冲突的方法是:
git merge "merge zengbin to master" HEAD zengbin
git status 查看哪个或哪些文件存在冲突
在master分支分别打开这些文件进行修改,改成想要的文件;
git commit -a -m "fix confict" 将解决冲突而修改的文件提交,会提示merge成功
要注意解决冲突只是修改了master分支的文件内容,zengbin分支的冲突文件不会同步更新
22、在开发到某一阶段,可以将本地仓库(已经都commit的)标定一个标签或版本号,方便版本间来回切换;
git tag v0.0.1 -a -m "tag v0.0.1 2017-03-28"
继续一些开发工作,也可以进行一些tag标定
git tag v0.0.2 -a -m "tag v0.0.2 xxxx"
可能v0.0.2版本问题比较多,想要回退到v0.0.1
git checkout v0.0.1
可以在各个标签版本之间来回切换
git checkout v0.0.2
23、revert和reset
1、revert回退到指定版本
首先用git log --oneline查看提交的版本号
再用git revert HEAD~4返回到从0开始数前面4次的提交,git revert HEAD是回退最新的一次提交;注意如果是新增加的一个文件,使用revert回退,会将版本仓库、暂存区以及本地的这个文件都删除掉;另外,revert的提交本身也可以被回退;
2、reset回退到指定版本
首先用git log --oneline查看提交的版本号
再用git reset 8631ead 返回到8631ead对应的版本,该版本之后的提交都会被删除;
git reset 8631ead --soft 软重置,只会将版本库的提交删除,出现一批待提交的操作;
git reset 8631ead --mixed 默认,混合重置,会将版本库和暂存区都删除,出现待添加操作
git reset 8631ead --hard 硬重置,将本地的文件操作也删除,一般不用;
revert和reset的区别:
git revert 回退会保留原有的提交版本号,git log还会保留被回退的提交操作的版本号,通过回退revert或者别的操作,能用到被回退的版本号;
git reset 重置会将指定版本号之后提交的操作的版本号都删掉,被重置的操作记录不会再出现在git log中,而且reset有soft、mixed、hard的区别,revert没有的;
24、删除分支:
git branch -d zengbin
分支重命名:
git branch -m dev2 dev 表示将dev2分支重命名为dev
25、在dev分支本地修改了一些文件,可能突然会让修改一些线上的代码,如果直接在本地的dev分支修改,在提交的时候少不得会把之前修改的文件也一并提交,就算指定修改bug的文件提交,在merge分支的时候,也会提示本地还有文件修改,这是因为每个分支的暂存区都是共用的;
解决的方法是,将本地修改的一些文件先暂时封存起来:
git stash
这样本地修改的文件就从dev分支的本地暂时清楚,这样在创建一个新的分支:
git checkout -b bug_001
正常的修改bug,然后提交,然后merge,然后不喜欢的话可以删除bug_001分支
整个的bug修复过程结束后,在回过头来进行dev分支本地文件的修改,继续开发工作;
将封存的文件提取出来:
git stash pop 这个命令是取最新的一次封存内容;
git stash list 列出所有的封存记录
git stash applay stash@{2} 提取指定版本的封存;
26、本地仓库管理远程仓库:
git remote add origin https://github.com/......
27、git branch -r 查看本地分支与远程的对应关系
git branch -a 查看远程分支
28、git push -u origin dev 创建远程分支dev并将本地文件push到新建的dev分支
git checkout -b dev2 本地创建dev2分支并切换到dev2分支
git checkout -b dev3 origin/dev 本地创建dev3分支并关联到远程分支dev
29、添加关联一个远程仓库:
git remote add [shortname] [url]:
git remote add pb git://github.com/paulboone/ticgit.git
30、删除一个远程版本库的关联:
git remote remove pb
git常用命令汇总
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。