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".

 


 

 

全部评论

相关推荐

2025-11-26 09:37
山西大学 测试工程师
累死的一条狗:学长你电脑闹鬼了
点赞 评论 收藏
分享
首先讲三个故事,关于牛客的事件一:2024年,牛客上有一对高学历情侣,求职方向与我当时一致,都是嵌入式方向。他们恰好是我的朋友,专业能力和学历背景都很扎实,也因此拿到了不少优质offer。和很多求职者一样,他们把offer情况整理后发在平台上,本意是记录与交流,但很快引发了争议。有声音指责他们“集邮”“不释放名额”,认为这种展示本身就是一种炫耀。最终讨论失控,当事人删除内容,事件也很快被遗忘。事件二:小红书评论区,一条评价获得了不少共鸣:“感觉牛客就是当年那群做题区毕业了开始找工作还收不住那股味,颇有一种从年级第一掉到年纪第二后抱怨考不上大学的味道”,这条评论被水印里这个同学转发到牛客后,评论...
小型域名服务器:当看到别人比自己强的时候,即便这是对方应得的,很多人会也下意识的歪曲解构对方的意图,来消解自己在这本就不存在的比较中输掉的自信,从而平白制造出很多无谓的争论。比如你会在空余时间来写优质好文,而我回家只会暗区突围,那么我就可以作为键盘侠在这里评论你是不是XXXXXXXX。即便我自己都知道这是假的,但只要这没那么容易证伪,那么当你开始回应的时候,脏水就已经泼出去了,后面可能会有更多的人带着情绪来给我点赞,而毫不关注你写的文章内容本身是啥了。
SAGIMA牛马咖啡
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务