赞
踩
$ git clone http://xxxx.git --branch master
为自己的写新项目添加git版本控制,进入项目目录执行以下命令:
git init .
$ git branch -a
git checkout 分支名
git checkout feature/xx-1.7.0
$ git branch -vv
* feature/tq-xxxx-1.7.0 d477378d [origin/feature/tq-xxx-1.7.0] 【涂作权】 更新配置
master 331276ed [origin/master] 【涂作权】 解决命令行下执行脚本出错的问题
$ git branch feature/tq-xxx-1.7.1
$ git branch -a
* feature/tq-xxx-1.7.0
feature/tq-xxx-1.7.1
master
...
git checkout feature/tq-xxx-1.7.1
git push origin feature/tq-xxx-1.7.1
git branch -d feature/tq-xxx-1.7.1
git push origin --delete feature/tq-xxx-1.7.1
git pull origin feature/tq-xxx-1.7.1
git branch -r | grep 'origin/AUTO' | xargs git branch -r -d
xargs表示作为参数
git tag
默认标签是打在最新提交的commit上的
git tag <tag name>
or
git tag <tag name> 16098ee1cbbc8a1884e19c6681735e1792f9b577 // 在某个commit上打tag
// git log 查看commit版本号
例如:打v1.1.0标签
git tag v1.1.0
git tag -a <tag name> -m <message>
例如, 打v1.1.0标签
git tag -a v1.1.0 -m 'v1.1.0 release'
git push origin <tag name> // 推送一个标签到远程
or
git push origin --tags // 推送全部未推送的本地标签
git tag -d <tag name>
git push origin :refs/tags/<tag name> // 本地tag删除了,在执行该句,删除远程tag
A: 先git clone的方式获取代码
B: 切换到某个tag : git checkout tag_name
C: 当前处于一个“detached HEAD” 状态 ,每一个 tag 就是代码仓库中的一个快照,如果你想编辑此tag 下的代码,上面的方法就不适用了.你需要把 tag 快照对应的代码拉取到一个分支上。
例如想编辑 v1.0的tag 代码,那么可以选择如下操作
git checkout -b new_branch v1.0
git checkout -b [分支名称] [tag标签名称]
如果日志特别多的话,在git bash中,按向下键来查看更多,按q键退出查看日志。
查看最近一次commit内容,也可以后面加commit号,单独查看此次版本的日志
-p参数输出的信息会更多,用来显示提交的改动记录,相当于多次使用git show [commit_id]的结果。
git archive -o $PWD/version-$(git rev-parse HEAD)-latest.tar.gz $(git rev-parse HEAD)
$(git diff --name-only HEAD HEAD~1)
1、git init —在当前目录新建一个代码库。 2、 git config user.name=””git config user.email=””—设置代码提交时候的信息。 3、 git clone 需要clone 远程地址 ––从服务器端克隆项目到本地 4、 git status —查看文件修改状态。 5、 git diff 文件路径 ––查看该文件与上次提交修改代码的差别。 6、 git diff –-cached 文件路径 ––查看本地缓冲和上次提交的差别。 7、 git checkout –b 分支名称 ––新建一个临时分支。 8、 git checkout 分支名称 ––切换分支。 9、 git branch —查看所有的分支。 10、 git branch –D temp —强制删除一个分支 11、 git pull —将服务端代码更新到本地。 12、 git add 文件路径 —提交文件到暂冲区。 13、 git add –A —提交所有的需要add 的文件到缓冲区。 14、 git commit –m ‘提交说明’—将缓冲区的文件提交到本地库中。提交说明尽量将提交内容简单明了的表达清楚。 15、 git push origin master —将已经提交到本地的仓库的代码push到远程服务器。 16、 git log —显示提交的日志。 17、 git show [commit 的Id] — 显示某次提交的元数据和内容变化。 18、 git show [commit Id] –-stat —-显示提交的文件名称 19、 git checkout —恢复暂存区的所有文件。 20、 git reset [file/commit ID] – 重置暂存区的指定文件。用来撤销git commit 21、 git reset –hard [commit 的Id] —将本地版本退回到提交之前的版本。这个操作会将自己新写的代码全部撤销没了。 22、 git cherry-pick temp —-合并临时分支到当前分支。 23、 git commit –amend —修改最近一次提交说明的内容同时可以合并提交。对已经Push 的无效。 24、git rm <删除的本地仓库中文件路径(前提已经提交到远程仓库)> git commit -m “delete file” 分两步执行,可以删除远程仓库对应的文件
提交步骤
首先你先通过git init git clone 基本环境准备好后,你写完自己的代码想要提交到远程服务器。
git status 查看改动的文件有哪些
分别git diff 改动文件路径 看看有没有空格之类。检查格式,改动具体代码
确认无误后 git add 需要提交的文件路径 也可以加入改动的都是需要提交可以git add .
git pull
git commit -m “提交备注” 切记commit 之前 先git pull
git push origin master
git init
git add .
git commit -m "描述"
接下来你要做的就是复制那个地址,然后你将本地仓库个远程仓库连接起来。
git remote add origin git@github.com:yourname/仓库名.git
git push -u origin master
target/ # Package Files # *.jar *.war *.nar *.ear *.zip *.tar.gz *.rar # Compiled class file *.class # Log file *.log ### Gradle Files ### .gradle /build/ !gradle/wrapper/gradle-wrapper.jar ### IntelliJ IDEA ### .idea *.iws *.iml *.ipr /out/
可以看到target文件变成了这种黄色,这即代表这个文件夹无法提交了。
需要注意的是这个方法只对未关联至git的文件或者文件夹有效,所以最好能在项目构建初期就设置好
再入例子:
.project
.classpath
.settings/
target/
logs/
log/
output/
.factorypath
.idea
*.iml
场景一的方法,只能是对于没有提交过的文件,但如果有文件已经推送(push),想从git远程库中删除,并在以后的提交中忽略,但是却还想在本地保留这个文件,应该怎么操作呢?
git rm --cached Xml/config.xml
后面的 Xml/config.xml 是要从远程库中删除的文件的路径,支持通配符*
比如,不小心提交到git上的一些log日志文件,想从远程库删除,可以用这个命令
比如我们做测试的时候我们的本地的数据库配置信息文件,我们不想把本地文件提交到服务器,我们就可以如下这样做,
创建一个提交目录
把我们不需要提交的文件放到这个目录中
这样提交的时候只需要选中第一个默认的提交目录,Ignore中的文件就不会被提交了。
比对工具
kdiff3
在通过idea合并分支时,碰到一个错误,说是因为在合并分支时为合并完成,如下图
之所以会碰到这个错误是因为,在合并分支时碰到了冲突,在解决冲突时按到了关闭按钮然后代码中展示了很多冲突,想要重新合并一次,所以就直接通过idea的revert将代码回滚了,然后再去合并就出现这个错误。解决办法如下:
打开idea的Terminal命令行,输入如下两行命令:
git fetch --all
git reset --hard origin/master
git fetch 是下载远程的仓库的内容,不做任何的合并,git reset 是把本地代码指向刚刚下载的最新的版本,origin/master是主干代码名,如果是分支则要换成分支名。
然后再去合并其他分支的代码就可以了,如过在合并的时候提示有未完成的合并,是因为之前合并回滚的代码没有删掉,找到本地项目中红色的文件全部删掉后就可以正常合并了
git reset --soft HEAD^
git reset --hard FETCH_HEAD
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。