Git教程

1、linux安装

sudo apt install git

2、输入git;如图成功安装

 

3、加入公钥到github

cat ~/.ssh/id_rsa.pub

 

 

二、git命令

git diff HEAD -- code.txt

HEAD表示在暂存区的文件, --表示当前工作区文件

1、git add  file          添加文件到暂存区

   git add -A .       添加所有改动的文件到暂存区

2、git rm file      在暂存区删除

恢复: git checkout HEAD -- file

4、 git commit -m 'first commit'    提交到版本库

5、git branch          查看分支

6、 git branch a         添加分支a

7、git checkout a        切换分支a

7.1、git branch -d name      删除分支

8、git checkout -b a       一步添加并切换到分支a 

9、git checkout -d a      删除分支a

10、git checkout -D a      强制删除分支a

10.2 git checkout .. filename    #撤销没有加入暂存区的文件,就是还没有git add ..

  加入暂存区后,git reset HEAD  file,进入工作区,然后再撤销,就是git checkout .. file

11、git remote add origin  git_hub_url      添加远程,版本库命名为origin    

12、git pull origin master            可以先pull 然后再进行push,否则有可能会有冲突

13、git push origin master        把本地的文件上传到github服务器;  origin是远程仓库名,master是本地的分支名,有可能是分支dev

14、git tag v1.1             添加版本     

15、git checkout v1.1          切换

16、git init                初始化git项目目录

17、git log                查看日志

18、git  merge              合并分支

19、git rebase               合并分支

20、ssh                  ssh-keygen -t rsa

21、git clone              下载github文件

22、git remote              查看远程项目库

23、git remote -v

24、git config —global user.name ""    git config —global user.email "" 

25、git status              查看状态

26、git config --global alias.co checkout    

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%
d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

27、git config --global core.editor "vim"

28、git config --global color.ui true

29、git config --global core.quotepath false # 设置显示中文文件名

30、git config -l

31、git diff 

32、git push origin :develop       git checkout develop origin/develop           git checkout -b develop origin/develop

 33、git reflog                git log     git log  -- pretty=oneline          查看所有的commit_id

34、git  reset --hard HEAD^          git reset --hard HEAD~100          回退

35、git reset --hard  commit_id

 36、git stash       保存现场,可以去修改bug了

37、git stash list           查看保存的工作现场

38、git stash pop      恢复现场

39、本地分支跟踪github分支   git branch --set-upstream-to=origin/dev dev   远程dev与本地dev分支

 

三、分支冲突以及gitHub使用

1、两个分支都编辑了同一个文件,而且都进行了提交commit,那么合并的时候就会出现冲突

可以手动修改这个文件,然后重新提交,和合并

2、前面的merge都是快速合并,有可能不是快速合并,没有冲突但是会有一次提交过程

会出现很奇怪的图形,然后输入一个内容,输入的就是commit的说明信息,因为自动有一次提交工程。

git merge --no-ff -m ''提交信息' dev

这个是禁用快速合并模式,-m ''  提交信息

 

3、修改bug的过程

(1)正在其它的分支工作时,首先保存现场 git stash

(2)进入有bug的分支  git checkout  branch_name

(3)新建并进入一个bug分支   git checkout -b bug_001

(4)修改完成后,进入有bug的那个分支,然后合并修改的结果,是由--no-ff  非快速合并   git merge --no-ff -m '提交信息' bug_001

(5)修改并保存了bug后,删除bug_001分支,git branch -d bug_001

(6)进入之前工作的那个分支,查看保存的现场,git stash list

(7)恢复现场   git  stash pop

 

4、远程出现错误

先git pull  把远程的合并到本地来

这个错误是本地和远程有冲突了

git pull origin master --allow-unrelated-histories

出现很奇怪的图形,ctrl+C或者ctrl+z啥的

然后再进行push

git push origin master

 

git pull origin master --allow-unrelated-histories 出现了错误

解决方法:

(1)git fetch --all

(2)git reset --hard origin/master

然后再 git pull origin master --allow-unrelated-histories

2.1 问题所在:fetch是将主分支上的所有的代码都down下来,但不会自动合并。
2.2 解决方案:
① 保存本地代码
② 执行git fetch --all
③ 执行git reset --hard origin/master ----> git reset 把HEAD指向刚刚下载的最新的版本
④pull主分支下的代码
⑤解决冲突,然后提交代码到自己的分支那里

 

 

2、我们如果先把远程复制到本地,就不需要init;而且直接push,pull

 

posted @ 2019-04-08 11:19  韩文林  阅读(156)  评论(0编辑  收藏  举报