git

2021/6/11 10:27:10

本文主要是介绍git,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.配置git

1)添加用户


git config –global user.name “fanqunsong” 


git config –gloaba user.email “fanqunsong@meituan.com”

 

2)查看git配置及用户信息


git config –-list

 

3)生成SSH秘钥


1) 查看是否有秘钥,有则备份然后删除文件夹 
cd ~/.ssh 
ls


2) 正式生成,输入指令再 按三次回车,也就是第三次回车密码输入可以为空 
ssh-keygen -t rsa -C “fanqunsong@meituan.com” 


3) 添加私钥到 ssh
ssh -add id_rsa


4)复制秘钥

cat  ~/.ssh/id_rsa.pub


5)添加SSHKeys

进入http://git.sankuai.com/plugins/servlet/ssh/account/keys添加SSHKeys


6)测试本机是否有访问的权限 


ssh git.sankuai.com

 

 

2.Git和Stash学习

1)创建个人仓库 fanqunsong/Demo;

2)终端首次配置git;

git config --global user.name "fanqunsong"

git config --global user.email"fanqunsong@meituan.com"

3)上传本地的IDEA项目到Stash;

cd ~/IdeaProjects/SpringDemo/ //项目所在目录

git init  //初始化Git仓库

git add --all  //将所有文件添加到暂存区

git commit -m "Initial Commit"  //将暂存区文件提交到本地仓库

git remote add origin ssh://git@git.sankuai.com/fanqunsong/demo.git  //关联远程仓库

git push origin master //推送变更到远程仓库

4)从仓库下载项目到桌面;

cd ~/Desktop/

git clone ssh://git@git.sankuai.com/fanqunsong/demo.git

5)一些常用git命令;

git remote show origin //显示远程仓库信息

git remote rm origin //删除远程仓库

git rm -rf file  //删除文件

git status -s  //查看当前目录下的[没有被Git管理]和[被Git管理但被修改还未提交]的文件状态

git reset --hard 回退到以前的版本

git push origin master的意思就是上传本地当前分支代码到master分支。

git push是上传本地所有分支代码到远程对应的分支上。

 

-------------------------------------------------------------------

IDEA上使用github上传代码

 

--------------------------------------------------------------------

 

------------------------------------------------------------------

Github:在Github上创建自己的代码仓库

 

--------------------------------------------------------------------------------

配置 git df

vi ~/.gitconfig

[diff]
        tool = vimdiff
[difftool]
        prompt = false
[alias]
        df = difftool
        ignore = update-index --assume-unchanged

然后Git ignore file 这个文件将不会在git托管状态

---------------------------------------------------------------------

 

git reset --hard 回退到以前的版本

git push origin master和git push有什么区别?
1、master是主分支,还可以建一些其他的分支用于开发。
2、git push origin master的意思就是上传本地当前分支代码到master分支。
git push是上传本地所有分支代码到远程对应的分支上。
我们一般可以git push到相应分支上

./init_idea.sh 可以初始化项目

tail -f /data/logs/lingxuweb.log
查看日志

【git 删除本地分支】 git branch -D br
git 删除远程分支】git push origin :br  (origin 后面有空格)

git reset --hard 回退到以前的版本

var timeID=setTimeout(showLeftTime,1000);
        autodata +=":"+timeID;


git checkout master
Switched to branch 'master'
[root@lingxu-training-dev001-bjdx11 lingxuweb]# git pull
Already up-to-date.
[root@lingxu-training-dev001-bjdx11 lingxuweb]# git push origin master
Everything up-to-date
[root@lingxu-training-dev001-bjdx11 lingxuweb]# git checkout dev_snat
Switched to branch 'dev_snat'
[root@lingxu-training-dev001-bjdx11 lingxuweb]# git rebase master


本地修改了一些文件,其中包含修改、新增、删除的,不需要了想要丢弃,于是做了git check -- .操作,但是只放弃了修改的文件,新增和删除的仍然没有恢复,于是百度了下,使用如下命令:

git checkout . && git clean -df

可以放弃所有修改、新增、删除文件

git checkout . //放弃本地修改,没有提交的可以回到未修改前版本

git clean是从工作目录中移除没有track的文件.
通常的参数是git clean -df:
-d表示同时移除目录,-f表示force,因为在git的配置文件中, clean.requireForce=true,如果不加-f,clean将会拒绝执行.

撤销git
git reset HEAD .

git cherry pick 版本号
会将此版本修改的代码同步过来


先在master分支git pull
然后 git push origin master
然后 切换分支
然后 git rebase master
如果 项目结构出现改变
可重新导入
./init_idea.sh


git reset  188da23a885978779d12ff589b76457794d0cdb4 fileName
回退单个文件


放弃git  add的某个文件
git reset HEAD fileName




 git rebase -i commit_id
 将不需要的pick  改成squash
 然后跳出来一个文件修改commitMessage
 然后 push到相应分支上
 不行的话 push -f

远程分支切换到本地   git checkout branch

查看本地分支的上一次提交注释

git branch -v

查看本地和远程所有分支上一次提交注释

git branch -av


git log -3 最近三次的修改

查看自己的提交  git log --author=

拉取远程分支并创建本地分支
git checkout -b 本地分支名x origin/远程分支名x

分支修改名称
git branch -m branchname newbranchname


回滚
git reset --hard HEAD~1 回滚到上一个版本,或者git log以后 git reset --hard 某个版本
然后 git push -f origin master
 

qa!退出 git df

 

# 删除 untracked files

git clean -f

 

# 连 untracked 的目录也一起删掉

git clean -fd

#合并某个分支

git merge branchName

-----------------------------

git的服务器端(remote)端包含多个repository,每个repository可以理解为一个项目。而每个repository下有多个branch,此处各个branch的意义,可以参考这篇文章。"origin"就是指向某一个repository的指针。服务器端的"master"(强调服务器端是因为本地端也有master)就是指向某个repository的一个branch的指针。

这是服务器端(remote)的情况:

而在本地电脑(local)上:"master"就是指向刚刚从remote server传到本地的副本branch。

$git push A B:C     %其中A和C是分别remote端的一个repository的名字和branch的名字,B是本地端branch的名字

的意思是把本地的B推送到remotes/A/C下。当B=C时可以直接省略为:git push A B。比如:

"git push origin master:master" 可以直接省略为"git push origin master".

 


 

 



这篇关于git的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程