git命令实战之血泪记录
![](https://images2017.cnblogs.com/blog/1097754/201801/1097754-20180117160138912-480274619.png)
git reset --hard commit_id 强制撤销该次commit,删除本地修改代码。
git reset --hard 后悔药!!强制还原到上次提交时代码,干掉本地所有修改,所有!如果你刚刚执行了一次git pull的操作,却发现TM有大量的!文件发生冲突,可以执行这个命令,使代码还原到上一次执行git pull 命令之前!而且!此命令会强制恢复到上次提交代码时状态,不论你后来执行了多少次pull拉取代码的操作以及任何git add to index或者git commit的操作,很神奇吧,很好用,因为有时候改着改着,你都不知道代码改成什么样了,而且又忘记了本地备份。而且,代码还原的那个状态是最干净的状态,没有任何冲突!没有任何修改!
git reset HEAD~ 撤销最后一次commit,保留所有更改文件到change列表
$ git branch -r origin/master origin/develop
如果使用git branch -r 无法列出远程已经存在的分支,又需要拉取这个远程分支的代码,则使用命令:
$ git pull origin master 第1次拉取主分支
$ git pull origin develop 第2次拉取本地不存在的分支
git checkout -b abcd aaa 拉取远程分支abcd的代码,并且新建本地分支命名为aaa。
git checkout -b abcd 直接从当前分支copy一份代码成为新分支abcd,如果已经有改动的代码尚未提交则直接一起变到新分支上
git branch 查看当前代码隶属分支,如果abcd前面有个*号,则切换分支到abcd成功。
git checkout origin/master 切换到远程master分支,如果本地已经存在master分支,则不使用-b参数来创建本地分支
小妙招:如果远程存在已经创建的新分支 branch_x,在本地使用任何命令死活出不来,有个方法可以使用:
1、重新拉取一遍: git fetch --all
2、切换到指定分支: git checkout branch_x
3、拉取指定分支代码: git pull origin branch_x
切换本地分支
$ git branch -a
* version2.0 带*号表示你当前所处version2.0的分支
abcd 另外你还有一个abcd的本地分支
remotes/origin/version2.0 有一个version2.0远程分支
remotes/origin/abcd 有一个abcd的远程分支
git checkout abcd 切换到本地abcd分支
git checkout origin/abcd 切换到远程abcd分支
git branch -D master 删除本地分支master
git切换分支保存修改的代码的方法(转载)http://www.cnblogs.com/lance-ehf/p/4963050.html
git stash save “修改的信息" 保存一个已修改代码版本
git stash pop 将git stash栈中最后一个版本取出来
或者
git stash list 列出所有的未提交修改
git stash apply stash@{0} 可以取出指定栈中的一个版本
PS: 去除stash列表里的已修改代码,必须相应的切换到当时保存该stash时的分支
git config --global user.name "zhangsan" 设置用户名
git config --global user.email "1234@qq.com" 设置密码
git init 设置当前目录下为本地仓库目录
git remote add origin git@gitlab.com:zhangsan/example.git 添加远程仓库git地址,在origin地址下
git remote remove origin 刚才那个远程仓库地址如果添加错了,则删除origin地址
git remote add origin https://gitlab.com/zhangsan/example.git 添加https格式的远程项目git地址,git库命名为origin,可随意命名再比如mycompany
git add . 注意不要忽略最后的那个点,把当前目录下的所有文件都加入为提交内容,如果单个提交则是 git add xxx.java
git commit -m '初始导入' 初始提交到本地仓库,只有上一步的add命令成功提交了之后,即有提交内容之后,才可以执行commit命令,否则commit命令操作失败。
git push -u origin master 提交代码到命名为origin的git库,如果你上面通过git remote add XXX,添加了多个git远程库地址,这里的git库命名作用就显现出来了。首次提交代码,会先后弹出两个输入框,要求你输入代码提交时的用户名和密码,输入正确之后控制台会显示代码提交的百分比进度。
git status 查看当前项目状态,如果看见:Your branch is up-to-date with 'origin/master'.表示代码提交到gitlab成功
git remote get-url --all origin 查看所有push、pull动作的远程url地址
然后在eclipse里面显示git步骤:
先复制好git地址:https://gitlab.com/zhangsan/example.git
项目右键 -> Team -> Share Project -> 选择git,点击next
勾选Use or create repositories in the Eclipse……,然后点击按钮Create Repository
![](https://images2015.cnblogs.com/blog/1097754/201703/1097754-20170312105207061-322576195.png)
点击Create Repository按钮,相当于执行了git init命令,就是选择一个目录当你的本地仓库的意思,建立好之后,项目以后不会再次让你选择本地仓库的地址,除非你项目右键-> Team -> Disconnect。再点击Finish按钮。
这时候就添加成功了,校验是否添加成功,在eclipse里面Windown -> Show View -> Other -> Git Repositories,Git Repositories视图如下:
可以看到之前添加的origin远程地址都已经显示出来了。
git撤销修改方案
git从修改到提交成功,文件会经过N种状态:红色的(已修改未提交),绿色的(已提交未推送push)
git checkout -- file 当文件仅是修改未提交时,需要撤销所有文件修改
git简化命令
git pull
git push
如果想使用以上两个简化命令,而不想每次指定remote和branch,只需要像这样设置:
git branch --set-upstream-to=github/master master 设置remote为github的远程分支master映射到本地分支master
git拉取tag代码
#查询远程heads和tags的命令如下:
git pull origin refs/tags/v1.0.3 // 拉取origin库的 refs/tags/v1.0.3 tag代码
![](https://images2017.cnblogs.com/blog/1097754/201711/1097754-20171106152733903-1415262003.png)
![](https://images.cnblogs.com/cnblogs_com/zhuwenjoyce/945554/o_201113020411my-zhifubao-shouqianma.jpeg)