❶ git 产看提交修改了哪些文件
先用git log 获取commit_id,再用
git show commit_id | grep diff | cut -d" " -f 3 |cut -d/ -f 2 即可获得修改的文件
简单说明:git show 获取commit的详细信息,有修改的文件会有diff --git a/file_test.py b/file_test.py这样的记录,用grep+cut就可以得到你要的内容了
❷ 如何将代码上传到git服务器上
1、本地公钥的获取,
cd ~/.ssh
ls
使用指令ssh-keygen,生产公钥,第一个提示时输入文件(默认是id_rsa),第二个提示时输入的是密钥,
公钥放置在id_rsa.pub文件中。
2、按照code的提示,进行代码上传。
2.1 建立一个git文件件,比如git_csdn ,
2.2 git init,建仓操作,
2.3 可以新建一个readme.md,touch README.md
2.4git add.添加所有文件,git add file,添加file,比如git add README
2.5git commit -m "first commit"
2.6git remote add origin git @ url 地址
2.7git push -u origin master
3、git clone 地址
4、git remote不带参数,列出已经存在的远程分支
$ git remote
origin
5、配置:
$ git config --global user.name "John Doe"
$ git config --global [email protected]
出现的问题:Updates were rejected because the tip of your current branch is behind
有如下几种解决方法:
1.使用强制push的方法:
$ git push -u origin master -f
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
2.push前先将远程repository修改pull下来
$ git pull origin master
$ git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
$ git branch [name]
然后push
$ git push -u origin [name]
分支管理:
1、创建分支: git branch new_branch
2、查看分支:git branch
3、删除分支:git branch -d new_branch
4、切换分支:git checkout new_branch
5、创建分支并切换分支: git checkout -b new_branch即可在本地新建分支,并使用该分支track远程分支
6、提交并推送分支:
git add .
git commit -m "xxx"
git push -u origin new_branch
7、删除远程分支:git push origin --delete new_branch
8、合并分支: git merge new_branch
9、将本地更新上传到远程分支上:
例如本地新建或是更新了内容newfile.c文件,
首先git add newfile.c,
然后git commit -m "add new file",
紧接着git push 本地分支名 远程分支名即可将本地分支更新到远程分支。
10.获取远程分支
git fetch 从远程获取其他用户push上来的新分支
git remote -v 即可查看远程所有的版本信息
❸ git添加所有文件到版本库里用什么命令
1. Git概念
1.1. Git库中由三部分组成
Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。
1) 工作目录:用户本地的目录;
2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。
3) 仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。
1.2. 使用Git时的初始化事项
1.2.1. Git初始化配置
1) 配置使用git仓库的人员姓名
git config --global user.name "Your Name Comes Here"
2) 配置使用git仓库的人员email
git config --global user.email [email protected]
1.2.2. Git文档忽略机制
工作目录中有一些文件是不希望接受Git 管理的,譬如程序编译时生成的中间文件等等。Git 提供了文档忽略机制,可以将工作目录中不希望接受Git 管理的文档信息写到同一目录下的.gitignore 文件中。
例如:工作目录下有个zh目录,如果不想把它加入到Git管理中,则执行:
echo “zh” > .gitignore
git add .
有关gitignore 文件的诸多细节知识可阅读其使用手册:man gitignore
1.3. Git与Repo的比较
Git操作一般对应一个仓库,而Repo操作一般对应一个项目,即一个项目会由若干仓库组成。
例如,在操作整个Recket项目时使用Repo,而操作其中的某个仓库时使用Git。在包含隐藏目录.git的目录下执行git操作。
2. Git help
Git help 获取git基本命令
(如果要知道某个特定命令的使用方法,例如:使用Git help clone,来获取git clone的使用方法)
3. Git本地操作基本命令
3.1. Git init
或者使用git init-db。
创建一个空的Git库。在当前目录中产生一个.git 的子目录。以后,所有的文件变化信息都会保存到这个目录下,而不像CVS那样,会在每个目录和子目录下都创建一个CVS目录。
在.git目录下有一个config文件,可以修改其中的配置信息。
3.2. Git add
将当前工作目录中更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。
可以递归添加,即如果后面跟的是一个目录作为参数,则会递归添加整个目录中的所有子目录和文件。例如:
git add dir1 ( 添加dir1这个目录,目录下的所有文件都被加入 )
Git add f1 f2 ( 添加f1,f2文件)
git add . ( 添加当前目录下的所有文件和子目录 )
比如: ../../Debug/qh_1.bin文件被错误的添加到git中了,
在没有设置好.gitignore文件的时候就git add啦, 所以就有这个麻烦.
❹ git上的md文件clone到本地怎么阅读
根据你的描述:
在git里, 是可以很美观的阅读的, 还带目录 跳转 到本地也想这样的, retext其实也跟记事本差不多。
❺ git 怎么看单独某个文件的日志
有时候接手一份新代码时,看到某些文件的改动,但不清楚这个改动的作者和内原因,想查看该容文件的具体提交历史记录。
今天一个同事是这样做的,直接敲Git log命令,然后再使用vim命令的搜索关键字的方法来查看该文件的提交记录,如下所示:
❻ git常用操作
如果不用"pick"或者"edit",而是指定"squash",Git 会同时应用那个变更和它之前的变更并将提交说明归并。因此,如果想将这三个提交合并为单一提交, 可以将脚本修改成这样
保存并退出编辑器,Git 会应用全部三次变更然后将送回编辑器来归并三次提交说明。
然后保存,就会拥有包含前三次提交的全部变更的单一提交 。
注:最顶行pick 不能修改为squash
当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是 git stash 命令。
“‘储藏”“可以获取工作目录的中间状态——也就是修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。
当追准备切换分支,但是还不想提交你正在进行中的工作;所以储藏这些变更。为了往堆栈推送一个新的储藏,只要运行? git stash :
这时,你可以方便地切换到其他分支工作;你的变更都保存在栈上。要查看现有的储藏,你可以使用? git stash list :
git stash apply :重新应用你刚刚实施的储藏
git stash apply stash@{number} :应用更早的储藏
只需回到需要合并的源分支,运行 git merge 命令指定要合并进来的分支即可;Git 作了合并,但没有提交,它会停下来等你解决冲突。要看看哪些文件在合并时发生冲突,可以用 git status 观察
任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。可以看到此文件包含类似下面这样的部分:
可以看到 ======= 隔开的上半部分,是? HEAD (即 master 分支,在运行 merge 命令时所切换到的分支)中的内容,下半部分是在 iss53 分支中的内容。解决冲突的办法无非是二者选其一或者亲自整合到一起。比如可以通过把这段内容替换为下面这样来解决:
在解决了所有文件里的所有冲突后,运行? git add ?将把它们标记为已解决状态(译注:实际上就是来一次快照保存到暂存区域。)
pull时为了防止更改后pull Feiled的出现,先执行commit,stash or revert。