2.git的用法

2.git

1. 冲突的修改

pull时错误

  1. 保留本地修改,支持pull
git stash #将改动隐藏
git pull #新代码覆盖本地代码
git stash pop #将刚隐藏的改动恢复
  1. 不保留本地修改
git reset --hard #直接覆盖掉
git pull

2. 获取git的url地址

git remote -v

3. git查看branch

git branch

4. git建立新的分支

  1. git clone下来一个需要的分支

  2. 从当前的分支拉copy开发分支,路径就是lz/copy

$ git checkout -b git checkout -b lz/copy
Switched to a new branch 'lz/copy'
  1. 把新建的分支push到远端
$ git push origin lz/copy
#会让输入sudo用户名和密码,并打印出迁出的分支
  1. 拉取分支、
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.#后面还会有
  1. 关联分支
$ git branch --set-upstream-to=origin/lz/copy
  1. 重新拉取 git pull

该方法来自于 https://blog.csdn.net/QH_JAVA/article/details/77760499

5.git删除本地文件并提交记录

rm -rf a.txt #1,删除本地文件
git status #2.获取修改记录,看看改的对不对
git rm a.txt #3.类似与svn del 告诉git我要在仓库中删掉这个文件
git commit -m "remove a.txt for now" #4.提交修改并记录
git push #5.push修改

6.恢复误删的文件

目前我好没找到太好的办法,只能一个一个恢复,先找到丢失的文件,再把这个文件修复掉

git reset #查看哪个文件丢了
git checkout -- ./a.txt #恢复丢掉的这个a.txt文件

7.解决冲突

git merge xxx #将xxx这个branch的结果merge到本地

linux下beyondcompare并不好用,主要是我没破解成功…

我用的kdiff3,好像大家都用这个。用法也很简单,在~/.gitconfig里加一行配置

[merge]
	tool="kdiff3"

当需要修改冲突的时候,

git mergetool &

就会弹出四个框,其中上面三个,base是指需要合并的两个文件的最近的共同祖先版本。local就是本地的,remote就是远端的,下面output是合并之后的文件。

8. 版本回退

有的时候代码被改坏了,需要回退到好用的版本,就用这个。

git log #查看对应版本的commit id,
git reset --hard commitid #这里将id回退到指定版本
git push origin HEAD --force #将本地的修改推送到平台

9. 撤销commit

如果git commit后发现commit错了,希望重新提交:

git reset HEAD^